ORDER BY用于对查询结果排序,默认升序(ASC),可指定降序(DESC);支持按单列、多列或位置编号排序,多列时从左到右依次优先,建议使用列名并配合索引提升性能。

在mysql中,使用 ORDER BY 子句可以对查询结果进行排序。它通常出现在 select 语句的末尾,用于按一个或多个列对数据进行升序或降序排列。
基本语法
ORDER BY 的基本语法如下:
SELECT 列名 FROM 表名 ORDER BY 列名 [ASC | DESC];
其中:
- ASC 表示升序(默认)
- DESC 表示降序
按单个字段排序
如果想根据某个字段排序,比如按“年龄”从小到大排列用户信息:
SELECT * FROM users ORDER BY age ASC;
若要从大到小排列:
SELECT * FROM users ORDER BY age DESC;
按多个字段排序
可以同时按多个字段排序。例如先按“部门”升序,再按“工资”降序:
SELECT * FROM employees ORDER BY department ASC, salary DESC;
排序优先级从左到右,先排第一个字段,相同值时再按第二个字段排。
使用字段位置编号排序
除了字段名,还可以用 SELECT 列表中的位置编号来排序。例如:
SELECT name, age FROM users ORDER BY 2 DESC;
这里 2 代表 select 列表中的第二个字段(age),效果等同于 ORDER BY age DESC。虽然可用,但不推荐,因为可读性差。
基本上就这些。合理使用 ORDER BY 能让查询结果更清晰、更有用。注意在大数据量时配合索引提升性能。


