MySQL如何實作分頁查詢

清浅
發布: 2022-03-31 17:48:01
原創
21997 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板