SQL分頁查詢

2022-09-09 00:51:23 字數 1399 閱讀 9324

select * from 表名 limit start,count
說明:

limit是分頁查詢關鍵字

start表示開始行索引,預設是0

count表示查詢條數

例1:查詢前3行男生資訊:

select * from students where gender=1 limit 0,3;
模擬:

已知每頁顯示m條資料,求第n頁顯示的資料

查詢學生表,獲取第n頁資料的sql語句:

select * from students limit (n-1)*m,m
分頁實際上就是從結果集中「擷取」出第m~n條記錄。這個查詢可以通過limit offset 子句實現
例:

我們把結果集分頁,每頁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:

select id, name, gender, score

from students

order by score desc

limit 3 offset 3;

越往後分頁,limit語句的偏移量就會越大,速度也會明顯變慢。此時,我們可以通過子查詢的方式來提高分頁效率,大致如下:

select * from students where  id >=  

(select id from students where book_id = 123 order by id limit 10000, 1) limit 10

select * from `content` as t1   

join (select id from `content` order by id desc limit ".($page-1)*$pagesize.", 1) as t2

where t1.id <= t2.id order by t1.id desc limit $pagesize;

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...