LIMIT 与 OFFSET 子句
LIMIT 是输出修饰子。从逻辑上讲,它在查询的最后阶段应用。LIMIT 子句用于限制返回的行数。OFFSET 子句用于指定从哪个位置开始读取结果,也就是忽略前 OFFSET 行。
请注意,LIMIT 虽然可以不配合 ORDER BY 使用,但没有 ORDER BY 时结果可能不具确定性。不过这在某些场景仍然有用,比如快速查看一份数据快照。
示例
从 addresses 表中选择前 5 行:
SELECT *
FROM addresses
LIMIT 5;
从 addresses 表中选择 5 行,从位置 5 开始(即忽略前 5 行):
SELECT *
FROM addresses
LIMIT 5
OFFSET 5;
选择人口最多的前 5 个城市:
SELECT city, count(*) AS population
FROM addresses
GROUP BY city
ORDER BY population DESC
LIMIT 5;
从 addresses 表中选择 10% 的行:
SELECT *
FROM addresses
LIMIT 10%;