Skip to content

Latest commit

 

History

History
88 lines (61 loc) · 1.64 KB

File metadata and controls

88 lines (61 loc) · 1.64 KB

排序查询

查询出数据之后,经常还需要对结果进行排序,例如按时间倒序显示最新记录、按价格升序显示商品、按成绩排名等。MySQL 中排序主要依靠 ORDER BY 完成。

单字段排序

单字段排序的基本语法如下:

SELECT 字段列表
FROM 表名
ORDER BY 字段名 [ASC|DESC];

其中:

  • ASC:升序,默认值
  • DESC:降序

例如按年龄升序查询:

SELECT *
FROM user
ORDER BY age ASC;

如果省略 ASC,默认也是升序:

SELECT *
FROM user
ORDER BY age;

按创建时间倒序查询最新记录:

SELECT *
FROM article
ORDER BY created_at DESC;

这类写法在“最新发布”“最近更新”“金额最高”等场景中非常常见。

多字段排序

如果一个字段不足以完成排序,可以同时按多个字段排序。

基本语法如下:

SELECT 字段列表
FROM 表名
ORDER BY 字段1 排序方式, 字段2 排序方式;

例如先按城市升序,再按年龄降序:

SELECT *
FROM user
ORDER BY city ASC, age DESC;

它的含义是:

  1. 先按照 city 排序
  2. 如果 city 相同,再按照 age 排序

再例如,按订单状态和创建时间联合排序:

SELECT *
FROM orders
ORDER BY status ASC, created_at DESC;

多字段排序非常适合:

  • 分组后的组内排序
  • 分类列表排序
  • 复杂后台列表页排序

小结

排序查询的关键是 ORDER BY。单字段排序适合简单列表,多字段排序适合更复杂的业务规则。实际开发中,最常见的组合通常是“某状态字段 + 时间倒序”。