LIMIT 子句用于控制查询结果返回的行数。
基本语法
m 行;如果结果少于 m 行,则返回全部记录。
TOP 的另一种语法 (兼容 MS SQL Server) :
LIMIT m,可用于兼容 Microsoft SQL Server 的查询语法。
带偏移量的 SELECT:
n 行,然后返回后续 m 行。
在这两种形式下,n 和 m 都必须是非负整数。
负数限制
| 语法 | 结果 |
|---|---|
LIMIT -m | 最后 m 行 |
LIMIT -m OFFSET -n | 跳过最后 n 行后,再取最后 m 行 |
LIMIT m OFFSET -n | 跳过最后 n 行后,再取前 m 行 |
LIMIT -m OFFSET n | 跳过前 n 行后,再取最后 m 行 |
LIMIT -n, -m 语法等同于 LIMIT -m OFFSET -n。
分数限制
| Syntax | Result |
|---|---|
LIMIT 0.1 | 前 10% 的行 |
LIMIT 1 OFFSET 0.5 | 位于中间的那一行 |
LIMIT 0.25 OFFSET 0.5 | 第三四分位数对应的行 (跳过前 50% 后,再取 25% 的行) |
- 分数必须是大于 0 且小于 1 的 Float64 值。
- 非整数的行数会向上取整到下一个整数。
组合不同的 LIMIT 类型
LIMIT … WITH TIES
WITH TIES 修饰符会包含与限制结果中最后一行具有相同 ORDER BY 值的其他行。
WITH TIES 时,所有与最后一个值相同的行都会包含在结果中:
2) 。
使用 OFFSET 关键字指定偏移量时,情况也是如此:
1, 1, 2,但由于第二个 2 与最后一行并列,因此也会包含在结果中。
WITH TIES 不支持负数限制。ORDER BY ... WITH FILL 修饰符结合使用。
注意事项
ORDER BY 子句,返回的行可能是任意的,并且在多次执行查询时可能会有所不同。
**服务器端限制:**返回的行数也可能受到 limit 设置的影响。
另请参阅
- LIMIT BY — 限制每组值中的行数,适用于获取每个类别下前 N 个结果。