轉(zhuǎn)自:https://www.cnblogs.com/acm-bingzi/p/msqlLimit.html
MySQL的Limit子句
Limit子句可以被用于強(qiáng)制 SELECT 語句返回指定的記錄數(shù)。Limit接受一個或兩個數(shù)字參數(shù)。參數(shù)必須是一個整數(shù)常量。如果給定兩個參數(shù),第一個參數(shù)指定第一個返回記錄行的偏移量,第二個參數(shù)指定返回記錄行的最大數(shù)目。
//初始記錄行的偏移量是 0(而不是 1):
mysql> SELECT * FROM table LIMIT 5,10;//檢索記錄行6-15
//為了檢索從某一個偏移量到記錄集的結(jié)束所有的記錄行,可以指定第二個參數(shù)為 -1:
mysql> SELECT * FROM table LIMIT 95,-1;// 檢索記錄行 96-last
//如果只給定一個參數(shù),它表示返回最大的記錄行數(shù)目。換句話說,LIMIT n 等價于 LIMIT 0,n:
mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個記錄行
在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ù)計算是從0開始的
2.offset X是跳過X個數(shù)據(jù),limit Y是選取Y個數(shù)據(jù)
3.limit? X,Y? 中X表示跳過X個數(shù)據(jù),讀取Y個數(shù)據(jù)
這兩個都是能完成需要,但是他們之間是有區(qū)別的:
?、偈菑臄?shù)據(jù)庫中第三條開始查詢,取一條數(shù)據(jù),即第三條數(shù)據(jù)讀取,一二條跳過
②是從數(shù)據(jù)庫中的第二條數(shù)據(jù)開始查詢兩條數(shù)據(jù),即第二條和第三條。