SQL教程 分頁查詢

2021-09-25 11:26:25 字數 1276 閱讀 1373

使用select查詢時,如果結果集資料量很大,比如幾萬行資料,放在乙個頁面顯示的話資料量太大,不如分頁顯示,每次顯示100條。

要實現分頁功能,實際上就是從結果集中顯示第1-100條記錄作為第1頁,顯示第101-200條記錄作為第2頁,以此類推條。

因此,分頁實際上就是從結果集中「擷取」出第m~n條記錄。這個查詢可以通過limit offset子句實現。先把所有學生按照成績從高到低進行排序:

select id, name, gender, score from students order by score desc;
現在,把結果集分頁,每頁3條記錄。要獲取第1頁的記錄,可以使用limit 3 offset 0

select id, name, gender, score

from students

order by score desc

limit 3 offset 0;

上述查詢limit 3 offset 0表示,對結果集從0號記錄開始,最多取3條。注意sql記錄集的索引從0開始。

如果要查詢第2頁,那麼我們只需要「跳過」頭3條記錄,也就是對結果集從3號記錄開始查詢,把offset設定為3。類似的,查詢第3頁的時候,offset應該設定為6。

limit 3表示的意思是「最多3條記錄」。

可見,分頁查詢的關鍵在於,首先要確定每頁需要顯示的結果數量pagesize(這裡是3),然後根據當前頁的索引pageindex(從1開始),確定limit和offset應該設定的值:

這樣就能正確查詢出第n頁的記錄集。

如果原本記錄集一共就10條記錄,但我們把offset設定為20,offset超過了查詢的最大數量並不會報錯,而是得到乙個空的結果集:

empty result set
offset是可選的,如果只寫limit 15,那麼相當於limit 15 offset 0

在mysql中,limit 15 offset 30還可以簡寫成limit 30, 15

使用limit offset分頁時,隨著n越來越大,查詢效率也會越來越低。

使用limit offset可以對結果集進行分頁,每次查詢返回結果集的一部分;

分頁查詢需要先確定每頁的數量和當前頁數,然後確定limit和offset的值。

SQL分頁查詢

分頁sql查詢在程式設計的應用很多,主要有儲存過程分頁和sql分頁兩種,我比較喜歡用sql分頁,主要是很方便。為了提高查詢效率,應在排序欄位上加索引。sql分頁查詢的原理很簡單,比如你要查100條資料中的30 40條,你先查詢出前40條,再把這30條倒序,再查出這倒序後的前十條,最後把這十條倒序就是...

sql分頁查詢

declare id int declare moverecords int declare currentpage int declare pagesize int set currentpage 300 set pagesize 100 currentpage和 pagesize是傳入引數 se...

SQL分頁查詢

關於sql語句分頁,網上也有很多啦,我貼一部分過來,並且總結自己已知的分頁到下面,方便日後查閱。方法1 適用於 sql server 2000 2005 1 select top 頁大小 2from table1 3where id not in4 5select top 頁大小 頁數 1 id f...