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