首页/数据/SQL 速查/LIMIT 分页与 Top N
本包目录(311 条)

LIMIT 分页与 Top N

限定返回行数与偏移:LIMIT n 取前 n 行,OFFSET 跳过若干行;深分页性能差,生产上用键集分页替代大 OFFSET。

SQL 速查数据更新于 2026-10-12

示例

示例
-- 第 1 页
SELECT id, name FROM users ORDER BY id LIMIT 20;

-- 第 3 页(跳过 40 行,取 20 行)
SELECT id, name FROM users ORDER BY id LIMIT 20 OFFSET 40;

-- MySQL 也支持逗号写法
SELECT id, name FROM users ORDER BY id LIMIT 40, 20;
语法LIMIT n [OFFSET m];MySQL 另支持 LIMIT m, n
标准写法PostgreSQL 也支持 FETCH FIRST n ROWS ONLY;MySQL 只认 LIMIT
深 OFFSET偏移越大越慢:前面行会被读取后丢弃
LIMIT 必须与 ORDER BY 搭配才是确定的分页;没有排序时的“第 N 页”没有意义。

易错点

  • LIMIT 40, 20 的逗号语法是 MySQL 方言,PostgreSQL 只认 LIMIT 20 OFFSET 40
  • 大 OFFSET 深分页在百万行表上明显变慢,改用 WHERE id > 上页最后 id 的键集分页

数据来源与参考

  • MySQL 8.0 Reference Manual · SELECT · LIMIT
  • PostgreSQL Documentation · LIMIT and OFFSET
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌