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