MySQL LIMIT 限制结果
LIMIT 子句用于限制 SELECT 语句返回的记录数量,是实现分页的核心。
基本语法
SQL
-- 返回前 N 条记录
SELECT 列名 FROM 表名 LIMIT N;
-- 跳过 M 条,返回 N 条(分页)
SELECT 列名 FROM 表名 LIMIT M, N;
SELECT 列名 FROM 表名 LIMIT N OFFSET M;
限制返回数量
SQL
-- 创建示例表
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(50),
price DECIMAL(10, 2)
);
INSERT INTO products VALUES
(1, '手机', 2999),
(2, '电脑', 5999),
(3, '耳机', 299),
(4, '平板', 1999),
(5, '键盘', 199);
-- 只返回前3条
SELECT * FROM products LIMIT 3;
-- 返回价格最高的2个商品
SELECT * FROM products ORDER BY price DESC LIMIT 2;
分页查询
SQL
-- LIMIT offset, count
-- offset: 跳过的记录数(从0开始)
-- count: 返回的记录数
-- 第1页(每页3条)
SELECT * FROM products LIMIT 0, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 0;
-- 第2页
SELECT * FROM products LIMIT 3, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 3;
-- 第3页
SELECT * FROM products LIMIT 6, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 6;
分页公式
SQL
-- 页码从1开始,每页 pageSize 条
-- offset = (page - 1) * pageSize
-- 第 page 页
SET @page = 2;
SET @pageSize = 3;
SELECT * FROM products
LIMIT (@page - 1) * @pageSize, @pageSize;
与 ORDER BY 配合
SQL
-- 获取销量最高的前5名
SELECT * FROM products ORDER BY sales DESC LIMIT 5;
-- 获取第2-4名
SELECT * FROM products ORDER BY sales DESC LIMIT 1, 3;
LIMIT 必须放在 SELECT 语句最后,ORDER BY 之后。
要点总结
- LIMIT N 返回前 N 条记录
- LIMIT M, N 跳过 M 条,返回 N 条
- 分页公式:
LIMIT (page-1)*pageSize, pageSize - 常与 ORDER BY 配合获取排名数据
📝 发现内容有误?点击此处直接编辑