全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 5 分钟 ✍️ juanwangdev

MySQL ORDER BY 排序

ORDER BY 子句用于对查询结果进行排序,默认升序排列。

基本语法

SQL
SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];
-- ASC: 升序(默认)
-- DESC: 降序

单列排序

SQL
-- 创建示例表
CREATE TABLE scores (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    score INT,
    class VARCHAR(10)
);

INSERT INTO scores VALUES
(1, '张三', 85, 'A'),
(2, '李四', 92, 'A'),
(3, '王五', 78, 'B'),
(4, '赵六', 88, 'B');

-- 升序排序(默认)
SELECT * FROM scores ORDER BY score;
SELECT * FROM scores ORDER BY score ASC;

-- 降序排序
SELECT * FROM scores ORDER BY score DESC;

多列排序

SQL
-- 先按班级升序,再按分数降序
SELECT * FROM scores ORDER BY class ASC, score DESC;

-- 先按分数降序,再按姓名升序
SELECT name, score FROM scores ORDER BY score DESC, name ASC;

按表达式排序

SQL
-- 按计算结果排序
SELECT name, score, score * 1.1 AS 调整分
FROM scores
ORDER BY score * 1.1 DESC;

-- 使用别名排序
SELECT name, score AS 成绩
FROM scores
ORDER BY 成绩 DESC;

按位置排序

SQL
-- 按SELECT列表中的位置排序
SELECT name, score FROM scores ORDER BY 2 DESC;
-- 2 表示第二列(score)

NULL 值排序

SQL
-- MySQL 默认 NULL 值在升序时最前,降序时最后
-- 可以使用 IS NULL 控制位置
SELECT * FROM scores
ORDER BY score IS NULL, score DESC;

ORDER BY 在 WHERE 之后,LIMIT 之前执行。

要点总结

  • ORDER BY 对查询结果排序
  • ASC 升序(默认),DESC 降序
  • 支持多列排序,按书写顺序依次排序
  • 可按列名、表达式、别名或位置排序

📝 发现内容有误?点击此处直接编辑

← 上一篇 MySQL LIMIT 限制结果
下一篇 → MySQL SELECT 查询
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库