排序查询 === 查询出数据之后,经常还需要对结果进行排序,例如按时间倒序显示最新记录、按价格升序显示商品、按成绩排名等。MySQL 中排序主要依靠 `ORDER BY` 完成。 ### 单字段排序 单字段排序的基本语法如下: ```sql SELECT 字段列表 FROM 表名 ORDER BY 字段名 [ASC|DESC]; ``` 其中: - `ASC`:升序,默认值 - `DESC`:降序 例如按年龄升序查询: ```sql SELECT * FROM user ORDER BY age ASC; ``` 如果省略 `ASC`,默认也是升序: ```sql SELECT * FROM user ORDER BY age; ``` 按创建时间倒序查询最新记录: ```sql SELECT * FROM article ORDER BY created_at DESC; ``` 这类写法在“最新发布”“最近更新”“金额最高”等场景中非常常见。 ### 多字段排序 如果一个字段不足以完成排序,可以同时按多个字段排序。 基本语法如下: ```sql SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式, 字段2 排序方式; ``` 例如先按城市升序,再按年龄降序: ```sql SELECT * FROM user ORDER BY city ASC, age DESC; ``` 它的含义是: 1. 先按照 `city` 排序 2. 如果 `city` 相同,再按照 `age` 排序 再例如,按订单状态和创建时间联合排序: ```sql SELECT * FROM orders ORDER BY status ASC, created_at DESC; ``` 多字段排序非常适合: - 分组后的组内排序 - 分类列表排序 - 复杂后台列表页排序 ### 小结 排序查询的关键是 `ORDER BY`。单字段排序适合简单列表,多字段排序适合更复杂的业务规则。实际开发中,最常见的组合通常是“某状态字段 + 时间倒序”。