MySQL 關(guān)于分頁查詢一個非常有用的查詢參數(shù) |
發(fā)布時間: 2012/8/13 17:00:49 |
MySQL 的 SELECT 語句中有這么一個參數(shù):SQL_CALC_FOUND_ROWS,這個參數(shù)可以配合 MySQL 提供的函數(shù) FOUND_ROWS() 來使用。 當(dāng)我們使用 LIMIT ?,? 進(jìn)行分頁查詢時,返回的只是你想要的記錄,例如 LIMIT 10 則是返回前 10 條記錄,但是整個查詢涉及多少條記錄我們不知道,需要再次發(fā)送一個不帶 LIMIT 的查詢來獲取記錄數(shù),以便進(jìn)行翻頁處理。 而利用 FOUND_ROWS() 函數(shù)就無需這么麻煩了,試試執(zhí)行下面的 SQL 語句: mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; 這個方法在 MySQL 的命令行模式是可行的,在 Navicat 中一起執(zhí)行也是可行的,但分開執(zhí)行就不對。 另外,F(xiàn)OUND_ROWS 函數(shù)只能在執(zhí)行 SQL 語句后執(zhí)行一次,再次執(zhí)行的話,返回就是 1 。 最后,這個參數(shù)和函數(shù)都是 MySQL 獨有的,如果應(yīng)用需要支持多種數(shù)據(jù)庫,建議不要使用。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |