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