mysql中ORDER BY排序如何实现_mysql排序语句教程

来源:这里教程网 时间:2026-02-28 20:21:42 作者:

MySQL中的

ORDER BY
语句用于对查询结果进行排序,可以按升序或降序排列数据。它通常出现在
SELECT
语句的末尾,支持对单个字段或多字段排序,并可结合其他子句如
WHERE
LIMIT
等使用。

ORDER BY 基本语法

ORDER BY
的基本语法如下:

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

其中:

ASC:升序排列(默认) DESC:降序排列

例如,从学生表中按年龄升序显示所有记录:

SELECT * FROM students ORDER BY age ASC;

若想按成绩降序排列:

SELECT * FROM students ORDER BY score DESC;

多字段排序用法

可以同时按多个字段排序。排序优先级从左到右依次降低。

例如,先按班级排序,同一班级内再按成绩从高到低排列:

SELECT * FROM students ORDER BY class ASC, score DESC;

这条语句会先将学生按班级分组并升序排列,每个班级内部再按成绩降序展示。

结合 WHERE 和 LIMIT 使用

ORDER BY
常与其他子句配合使用,提高查询实用性。

比如筛选出数学成绩大于80的学生,并按分数倒序显示前5名:

SELECT * FROM students 
WHERE subject = 'math' AND score > 80 
ORDER BY score DESC 
LIMIT 5;

执行顺序是:

FROM → WHERE → ORDER BY → LIMIT
,注意逻辑顺序不能颠倒。

NULL 值的排序处理

当排序字段包含

NULL
值时,MySQL会将其视为最小值。在
ASC
排序中
NULL
出现在最前,在
DESC
中出现在最后。

如果希望改变

NULL
的显示位置,可通过表达式调整,例如将
NULL
排到最后:

SELECT * FROM students ORDER BY 
  CASE WHEN salary IS NULL THEN 1 ELSE 0 END, 
  salary ASC;

基本上就这些。掌握

ORDER BY
的用法,能让你更灵活地组织查询结果,提升数据可读性。实际使用中注意字段索引优化,尤其是大数据量排序时,避免全表扫描影响性能。

相关推荐