轉(zhuǎn)自:https://www.cnblogs.com/acm-bingzi/p/msqlLimit.html
MySQL的Limit子句
Limit子句可以被用于強(qiáng)制 SELECT 語句返回指定的記錄數(shù)邀桑。Limit接受一個(gè)或兩個(gè)數(shù)字參數(shù)。參數(shù)必須是一個(gè)整數(shù)常量拢军。如果給定兩個(gè)參數(shù),第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量晾剖,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目据沈。
//初始記錄行的偏移量是 0(而不是 1):
mysql> SELECT * FROM table LIMIT 5,10;//檢索記錄行6-15
//為了檢索從某一個(gè)偏移量到記錄集的結(jié)束所有的記錄行莺奔,可以指定第二個(gè)參數(shù)為 -1:
mysql> SELECT * FROM table LIMIT 95,-1;// 檢索記錄行 96-last
//如果只給定一個(gè)參數(shù),它表示返回最大的記錄行數(shù)目遗淳。換句話說拍柒,LIMIT n 等價(jià)于 LIMIT 0,n:
mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個(gè)記錄行
在sql語句中,limt關(guān)鍵字是最后才用到的屈暗。以下條件的出現(xiàn)順序一般是:where->group by->having-order by->limit
附錄:OFFSET
為了與 PostgreSQL 兼容拆讯,MySQL 也支持句法: LIMIT # OFFSET #。
經(jīng)常用到在數(shù)據(jù)庫中查詢中間幾條數(shù)據(jù)的需求
比如下面的sql語句:
⊙选① selete * from testtable limit 2,1;
≈帜拧② selete * from testtable limit 2 offset 1;
注意:
1.數(shù)據(jù)庫數(shù)據(jù)計(jì)算是從0開始的
2.offset X是跳過X個(gè)數(shù)據(jù),limit Y是選取Y個(gè)數(shù)據(jù)
3.limit? X,Y? 中X表示跳過X個(gè)數(shù)據(jù)弃甥,讀取Y個(gè)數(shù)據(jù)
這兩個(gè)都是能完成需要爽室,但是他們之間是有區(qū)別的:
①是從數(shù)據(jù)庫中第三條開始查詢淆攻,取一條數(shù)據(jù)阔墩,即第三條數(shù)據(jù)讀取嘿架,一二條跳過
②是從數(shù)據(jù)庫中的第二條數(shù)據(jù)開始查詢兩條數(shù)據(jù)啸箫,即第二條和第三條耸彪。