LIMIT
LIMIT 用于限制查询返回的行数。不同数据库语法不同:MySQL 用 LIMIT n 或 LIMIT offset, n,SQL Server 用 SELECT TOP n。这里以 MySQL 的 LIMIT 为主。
LIMIT 常与 ORDER BY 搭配。如果不排序就 LIMIT,数据库返回的顺序是不确定的。只有配合 ORDER BY 才能稳定地拿到"最大的前 N 个"或"最新的前 N 条"。两个参数的用法:LIMIT 5, 10 表示跳过前 5 行,取接下来的 10 行——这就是分页查询的基础。
排行榜、数据预览、分页展示都离不开 LIMIT。飞翔科技的 HR 系统每页展示 20 名员工,底层就用 LIMIT 控制每页的数据量。
标准写法:
-- 取前 N 行
SELECT 列名 FROM 表名 LIMIT N;
-- 分页:跳过 offset 行,取 N 行
SELECT 列名 FROM 表名 LIMIT offset, N;
以飞翔科技为例:
-- 工资最高的 5 名员工
SELECT emp_name, basic_salary
FROM employees
ORDER BY basic_salary DESC
LIMIT 5;
-- 分页查询:第 1 页,每页 10 行
SELECT emp_id, emp_name, dept_code
FROM employees
ORDER BY emp_id
LIMIT 0, 10;
-- 第 2 页(跳过前 10 行)
SELECT emp_id, emp_name, dept_code
FROM employees
ORDER BY emp_id
LIMIT 10, 10;
LIMIT 在数据库端截断数据,比把全部数据拉到应用层再截断高效得多。大数据量场景下,LIMIT 是防止查询撑爆内存的第一道防线。