在MySQL 查詢中計算超出LIMIT 的行數
問題:
執行MySQL查詢時使用LIMIT子句,取得表格中符合以下條件的總行數可能會很困難:查詢條件。在使用複雜的 JOIN 語句和 WHERE 子句時尤其如此。
解決方案:
為了解決這個問題,MySQL 提供了 SQL_CALC_FOUND_ROWS 關鍵字。使用此關鍵字時,它指示 MySQL 計算在沒有 LIMIT 子句的情況下檢索的總行數。
範例:
考慮以下 MySQL query:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
要取得不含 LIMIT子句的總行數,請執行以下兩個語句相同的順序:
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10 SELECT FOUND_ROWS();
第一個語句計算滿足查詢條件的總行數,而第二個語句則從FOUND_ROWS() 函數擷取總行數。
以上是如何計算 MySQL 查詢中超出 LIMIT 的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!