MySQL 關于分頁查詢一個非常有用的查詢參數 |
發布時間: 2012/8/13 17:00:49 |
MySQL 的 SELECT 語句中有這么一個參數:SQL_CALC_FOUND_ROWS,這個參數可以配合 MySQL 提供的函數 FOUND_ROWS() 來使用。 當我們使用 LIMIT ?,? 進行分頁查詢時,返回的只是你想要的記錄,例如 LIMIT 10 則是返回前 10 條記錄,但是整個查詢涉及多少條記錄我們不知道,需要再次發送一個不帶 LIMIT 的查詢來獲取記錄數,以便進行翻頁處理。 而利用 FOUND_ROWS() 函數就無需這么麻煩了,試試執行下面的 SQL 語句: mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; 這個方法在 MySQL 的命令行模式是可行的,在 Navicat 中一起執行也是可行的,但分開執行就不對。 另外,FOUND_ROWS 函數只能在執行 SQL 語句后執行一次,再次執行的話,返回就是 1 。 最后,這個參數和函數都是 MySQL 獨有的,如果應用需要支持多種數據庫,建議不要使用。 本文出自:億恩科技【www.vbseamall.com】 |