MySQL如何實現分頁查詢

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;

總結:

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享