首頁  >  文章  >  資料庫  >  MySQL如何實作分頁查詢

MySQL如何實作分頁查詢

清浅
清浅原創
2019-03-16 14:01:3322007瀏覽

MySQL中實現分頁查詢:在資料量較小的情況下可使用limit查詢來實現分頁查詢,在資料量大的情況下使用建立主鍵或唯一索引來實現,另外可透過order by對其排序

在後端專案中總是避免不了admin管理,當後台管理需要展示資料時就會需要用到分頁,接下來在文中將為大家分享的時MySQL如何實現分頁查詢,具有一定的參考作用,希望對大家有幫助。

MySQL如何實作分頁查詢

【推薦課程:MySQL教學

#一般情況下在MySQL中進行分頁查詢時,會用到limit查詢,而且在查詢中都會使用到order by來進行排序。接下來將具體介紹MySQL是如何實現分頁查詢的

分頁需求:

客戶端透過傳遞start(頁碼),limit(每頁顯示的條數)兩個參數去分頁查詢資料庫表中的數據,MySql資料庫提供分頁的函數有limit m,n,但是該函數的用法和我們的需求不一樣,所以就需要根據實際情況去改寫適合自己的分頁語句。範例

查詢第1條到第10條的資料的sql是:

select * from table limit 0,10;

對應我們的需求就是查詢第一頁的資料:

select * from table limit (1-1)*10,10;

從上面的分析我們可以得到分頁sql的格式是:

 select * from table limit (start-1)*limit,limit;

其中start是頁碼,limit是每頁顯示的條數。
建立主鍵或唯一索引

在資料量較小的時候使用 limit 進行資料分頁在效能上方不會有明顯的緩慢,但是當資料量達到了萬級或百萬級時,sql語句的效能將會影響資料的回傳。這是就要使用主鍵或是唯一索引來取代limit進行資料分頁

#例:傳回10到50之間的資料

設主鍵或唯一索引為demo_id ####
select * from table where demo_id > (pageNo-1)*pageSize limit pageSize;
# #####基於資料再排序############當需要傳回的資訊要依序或逆序時,就需要對上面的資料進行排序。可用order by ASC表示順序,order byDESC表示逆序,一般情況下預設的為順序#######例:傳回的資料依照demo_id的順序排列###
select * from table where demo_id > (pageNo-1)*pageSize order by demo_id limit pageSize;
###總結:以上就是本篇文章的全部內容了,希望對大家有幫助###

以上是MySQL如何實作分頁查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn