關於Mysql的數據列表的分頁顯示

網站( http://www.xqkblog.com)剛發佈時沒有幾篇文章,首頁基本上是列出所有內容,最近文章多起來了,須要弄個分頁顯示。

網站用的是MySQL數據庫,獲取某一頁的文章的代碼基本以下:mysql

int start = countPerPage*(page-1);
執行select * from .... limit start, countPerPagesql

於分頁時須要列出一些頁碼,這就須要得到文章總數,通常用select count(*) .......就能獲取數據。這裏的問題在於爲了實現分頁,須要對數據庫進行兩次查詢,效率不高,因此想是否是能夠用一次查詢解決這個問題,上網搜了一下,果真找到答案:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM ... WHERE ... LIMIT 10;
mysql> SELECT FOUND_ROWS();數據庫

參數SQL_CALC_FOUND_ROWS表示查詢時記錄查詢結果數
函數FOUNT_ROWS返回上次查詢(SQL_CALC_FOUND_ROWS)的結果數函數

雖然也須要select兩次,不過第2次select不須要查詢記錄,直接返回結果,效率能夠提升一倍網站

相關文章
相關標籤/搜索