Z
ZHANK
基础查询

排序与分页

掌握 ORDER BY 排序、LIMIT/OFFSET 分页

排序与分页

查询结果默认顺序是不确定的。ORDER BY 指定排序,LIMIT 限制返回行数。

学完本章你将: 掌握升序/降序、多列排序、分页查询。


ORDER BY —— 排序

sql
-- 升序(默认)
SELECT * FROM users ORDER BY age;
-- ASC 可写可不写
SELECT * FROM users ORDER BY age ASC;

-- 降序
SELECT * FROM users ORDER BY age DESC;

多列排序

先按第一列排,相同值再按第二列:

sql
-- 先按城市升序,同一城市内按年龄降序
SELECT name, city, age FROM users
ORDER BY city ASC, age DESC;

和 WHERE 配合

sql
-- WHERE 先过滤,ORDER BY 后排序
SELECT name, age FROM users
WHERE age >= 18
ORDER BY age DESC;

SQL 的执行顺序是 FROM → WHERE → SELECT → ORDER BY,理解这个顺序有助于写出正确查询。


LIMIT —— 限制返回行数

sql
-- 只返回前 5 条
SELECT * FROM users ORDER BY age DESC LIMIT 5;

-- 跳过前 3 条,返回 5 条(分页!)
SELECT * FROM users ORDER BY id LIMIT 5 OFFSET 3;
-- 等价写法(MySQL/SQLite 支持)
SELECT * FROM users ORDER BY id LIMIT 3, 5;

分页查询公式

第 N 页 = LIMIT page_size OFFSET (N-1) * page_size

第1页:LIMIT 10 OFFSET 0   → 第 1-10 行
第2页:LIMIT 10 OFFSET 10  → 第 11-20 行
第3页:LIMIT 10 OFFSET 20  → 第 21-30 行