限制和抵消關係
考慮以下 users
表:
ID |
使用者名稱 |
---|---|
1 |
使用者 1 |
2 |
使用者 2 |
3 |
使用者 3 |
4 |
使用者 4 |
五 | 使用者 5 |
為了約束 SELECT
查詢的結果集中的行數,LIMIT
子句可以與一個或兩個正整數一起用作引數(包括零)。
LIMIT
子句有一個引數
使用一個引數時,結果集將僅限制為以下列方式指定的數字:
SELECT * FROM users ORDER BY id ASC LIMIT 2
ID |
使用者名稱 |
---|---|
1 |
使用者 1 |
2 |
使用者 2 |
如果引數的值為 0
,則結果集將為空。
另請注意,ORDER BY
子句可能很重要,以指定將呈現的結果集的第一行(當由另一列排序時)。
LIMIT
clause 有兩個引數
當在 LIMIT
子句中使用兩個引數時:
- 第一個參數列示將從中顯示結果集行的行 - 此數字通常被稱為偏移量,因為它表示受約束結果集的初始行之前的行。這允許引數接收
0
作為值,從而考慮非約束結果集的第一行。 - 該第二引數指定在結果集中(類似於一個引數的例子)將被返回的最大行數。
因此查詢:
SELECT * FROM users ORDER BY id ASC LIMIT 2, 3
提供以下結果集:
ID |
使用者名稱 |
---|---|
3 |
使用者 3 |
4 |
使用者 4 |
五 | 使用者 5 |
請注意,當 offset 引數為 0
時,結果集將等同於一個引數 LIMIT
子句。這意味著以下 2 個查詢:
SELECT * FROM users ORDER BY id ASC LIMIT 0, 2
SELECT * FROM users ORDER BY id ASC LIMIT 2
生成相同的結果集:
ID |
使用者名稱 |
---|---|
1 |
使用者 1 |
2 |
使用者 2 |
OFFSET
關鍵字:替代語法
具有兩個引數的 LIMIT
子句的替代語法包括在第一個引數之後使用 OFFSET
關鍵字,方式如下:
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3
此查詢將返回以下結果集:
ID |
使用者名稱 |
---|---|
3 |
使用者 3 |
4 |
使用者 4 |
請注意,在此替代語法中,引數的位置已切換:
-
第一個參數列示結果集中要返回的行數;
-
該第二參數列示偏移。