SQL 查询中如何使用 LIMIT 分页?

LIMIT结合OFFSET是SQL分页的基本方法,语法为LIMIT数量OFFSET起始位置或LIMIT起始位置,数量,起始位置从0开始;分页公式为每页n条、第p页时,OFFSET=(p-1)n,LIMIT=n;例如查第3页每页10条需跳过20条;实际查询可用SELECT FROM users LIMIT 10 OFFSET 20;建议配合ORDER BY保证顺序稳定,注意OFFSET过大时性能下降,深度分页可改用键集或游标分页优化。

在 SQL 查询中,LIMIT 常用于实现分页功能,控制每次查询返回的记录数量。通过配合 OFFSET,可以跳过前面若干条数据,从而获取指定页的内容。

基本语法

LIMIT 子句的基本写法如下:

LIMIT 数量 OFFSET 起始位置

或简写为:

  • LIMIT 起始位置, 数量

注意:起始位置从 0 开始计数。

分页公式

假设每页显示 n 条数据,当前是第 p 页(页码从 1 开始),那么计算方式为:

  • OFFSET = (p - 1) * n
  • LIMIT = n

例如:每页 10 条,查第 3 页的数据,OFFSET 为 (3-1)*10 = 20,即跳过前 20 条。

实际示例

比如有一张用户表 users,想实现分页查询:

  • 第一页(前 10 条):SELECT * FROM users LIMIT 10 OFFSET 0;
  • 第二页:SELECT * FROM users LIMIT 10 OFFSET 10;
  • 第三页:SELECT * FROM users LIMIT 10 OFFSET 20;

也可以写成:SELECT * FROM users LIMIT 10, 10; (表示从第 11 条开始取 10 条)

注意事项

使用 LIMIT 分页时应注意

  • 为了保证结果顺序稳定,建议配合 ORDER BY 使用,否则每次查询的排序可能不一致。
  • 大数据量下 OFFSET 越大,性能越差,因为数据库仍需扫描前面所有行。
  • 可考虑使用“键集分页”或“游标分页”优化深度分页场景。

基本上就这些,LIMIT 结合 OFFSET 是最简单直接的分页方法,适合中小数据量场景。