排序与分页
掌握 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 行