LIMIT 子句
LIMIT m
允许从结果中选择前 m
行。
LIMIT n, m
允许在跳过前 n
行后,从结果中选择 m
行。 LIMIT m OFFSET n
语法是等效的。
n
和 m
必须是非负整数。
如果没有显式排序结果的 ORDER BY 子句,则结果的行选择可能是任意的且不确定的。
LIMIT ... WITH TIES 修饰符
当您为 LIMIT n[,m]
设置 WITH TIES
修饰符并指定 ORDER BY expr_list
时,您将获得结果中的前 n
或 n,m
行,以及所有与结果集中第 n
行(对于 LIMIT n
)或第 m
行(对于 LIMIT n,m
)具有相同 ORDER BY
字段值的行。
此修饰符还可以与 ORDER BY ... WITH FILL 修饰符 结合使用。
例如,以下查询
SELECT * FROM (
SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5
返回
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘
但是应用 WITH TIES
修饰符后
SELECT * FROM (
SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5 WITH TIES
它返回另一个行集合
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘
因为第 6 行的字段 n
的值 “2” 与第 5 行相同