mysql的SQL_CALC_FOUND_ROWS 使用

SQL_CALC_FOUND_ROWS是指在執行帶LIMIT的查詢時,附帶統計一下如果不加LIMIT的話將會輸出多少條結果。

eg:
SELECT SQL_CALC_FOUND_ROWS * FROM `table_a` LEFT JOIN `table_b` on `table_a`.id = `table_b`.a_id GROUP BY `table_a`.id ORDER BY `ctime` desc limit 0,10;


查詢完畢後再執行:

SELECT FOUND_ROWS();
這個語句返回group by 後的總記錄數

顯示
-------------|
FOUND_ROWS() |
-------------|
1000         |
-------------|

FOUND_ROWS()得到的數字是臨時的,執行下一條語句就會失效,需要保存在一個變量中.


在很多分頁的程序中都這樣寫:
SELECT COUNT(*) from `data_table` WHERE ......;  查出符合條件的記錄總數
SELECT * FROM `data_table` WHERE ...... limit M,N; 查詢當頁要顯示的數據


沒有進行測試,需要比較COUNT 和 SQL_CALC_FOUND_ROWS  較耗時的需要自測

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章