MySQL的FOUND_ROWS()函數(shù)可以返回一個(gè)SQL語(yǔ)句執(zhí)行后所影響的行數(shù),不論該語(yǔ)句實(shí)際返回了幾行記錄。它適用于任何的SELECT語(yǔ)句,并且不改變?cè)嫉牟樵?xún)結(jié)果集。
我們可以通過(guò)以下的方式來(lái)使用FOUND_ROWS()函數(shù):
SELECT SQL_CALC_FOUND_ROWS * FROM table_name WHERE condition; SELECT FOUND_ROWS();
在執(zhí)行以上的兩條語(yǔ)句后,我們可以通過(guò)FOUND_ROWS()函數(shù)來(lái)獲取查詢(xún)結(jié)果集的總行數(shù)。由于FOUND_ROWS()函數(shù)是在第一條SQL語(yǔ)句執(zhí)行后才被執(zhí)行,因此它返回的值是基于第一條SQL語(yǔ)句而不是第二條SQL語(yǔ)句。
以下是一個(gè)例子,它演示了如何使用FOUND_ROWS()函數(shù):
SELECT SQL_CALC_FOUND_ROWS * FROM employees WHERE department_id = 1 LIMIT 0, 10; SELECT FOUND_ROWS();
執(zhí)行以上的兩條語(yǔ)句后,我們可以得到前10條屬于部門(mén)1的員工記錄,并且FOUND_ROWS()函數(shù)將返回符合條件的總記錄數(shù)。
通過(guò)使用 FOUND_ROWS() 函數(shù),我們可以獲得一個(gè)SQL語(yǔ)句影響的行數(shù),即使該語(yǔ)句返回的結(jié)果集是被LIMIT子句所限制。這對(duì)于分頁(yè)和顯示查詢(xún)結(jié)果總數(shù)非常有用。