有些查询只需要返回部分结果,例如分页列表、只看最新 10 条记录、跳过前几条后再取若干条,这时就需要限制返回数量。MySQL 中通常使用 LIMIT 完成。
如果既要指定起始位置,又要指定返回条数,可以使用:
SELECT 字段列表
FROM 表名
LIMIT 起始位置, 返回条数;例如:
SELECT *
FROM article
LIMIT 5, 10;这表示:
- 跳过前 5 条记录
- 然后返回接下来的 10 条记录
这种写法非常适合分页查询。比如每页 10 条,第 2 页通常可以写成:
SELECT *
FROM article
LIMIT 10, 10;如果只想取前若干条记录,可以直接写返回条数:
SELECT 字段列表
FROM 表名
LIMIT 返回条数;例如只取前 5 条:
SELECT *
FROM article
LIMIT 5;这通常表示“从第 1 条开始,取 5 条”。
在实际使用中,LIMIT 通常会和排序结合:
SELECT *
FROM article
ORDER BY created_at DESC
LIMIT 5;这样就能得到“最新的 5 条记录”。
LIMIT 解决的是“返回多少条”的问题。只写一个数字表示取前 N 条,写两个数字则表示“从某个位置开始取 N 条”。在分页查询里,它通常会和 ORDER BY 一起使用。