Mysql 使用case排序

Mysql数据库 小铁匠 2023-08-31

在 MySQL 中,你可以使用 ORDER BY 子句来对结果进行排序。默认情况下,ORDER BY 子句按照升序对字段进行排序。如果你想按照降序排序,你可以使用 DESC 关键字。

除了默认的升序和降序排序,你还可以使用自定义排序顺序。这可以通过使用 CASE 语句来实现。

下面是一个示例,展示如何在 MySQL 中使用自定义排序顺序:

假设你有一个名为 students 的表,其中包含学生的姓名和成绩。你想按照成绩排序,但是你希望首先展示成绩优秀的学生(假设成绩大于等于 80),然后展示表现良好的学生(成绩在 60 到 80 之间),最后展示表现较差的学生(成绩小于 60)。

你可以使用以下查询来实现这个排序:

SELECT name, score
FROM students
ORDER BY 
    CASE
        WHEN score >= 80 THEN 1
        WHEN score >= 60 THEN 2
        ELSE 3
    END,
    score;

在这个查询中,我们首先使用 CASE 语句为每个成绩段分配一个数字值。然后,我们使用 ORDER BY 子句按照这个数字值进行排序,然后按照成绩进行排序。

这将首先按照成绩段进行排序,然后按照成绩在每个成绩段内进行排序。因此,优秀的学生将首先展示,然后是表现良好的学生,最后是表现较差的学生。

------ 本文结束 感谢阅读 ------
上一篇: Mysql 随机排序
下一篇: MySQL 日期类函数
推荐阅读
Sql语句优化和索引
Mysql数据库 2019-04-22
索引(也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构
Mysql数据库 2019-04-22
查看表的索引
Mysql数据库 小铁匠 2019-01-25
Mysql自定义排序(FIELD、INSTR、LOCATE)
Mysql数据库 小铁匠 2018-12-06
悲观锁是对数据被的修改持悲观态度(认为数据在被修改的时候一定会存在并发问题
Mysql数据库 2019-04-22