MySQL之ORDER BY同一个字段,不同值排序

MySQL之ORDER BY同一个字段,不同值排序

通常情况下,在MySQL中我们可以使用ORDER BY对一个或多个字段进行升、降排序。但是有时候我们可能想按着自己想要的顺序排序,尤其在枚举类型中,就可能需要定制化排序。

基础表数据:

id  day1  day2
1    1     2
2    1     7
4    1     4
5    2     2
6    2     8
7    2     3
8    3     3
9    3     6
10   3     4

我们可以升序、降序排序

-- 升序
SELECT * FROM dx_info ORDER BY day1
-- 降序
SELECT * FROM dx_info ORDER BY day1 DESC

但有时我们想按着 1->3->2 或者2->3->1等等方式排序,则可以将排序值附上,但是sql中的顺序和我们的排序是相反的。

-- 1->3->2
SELECT * FROM dx_info ORDER BY day1=2, day1=3, day1=1
--数据返回如下
    1   1   2
    2   1   7
    4   1   4
    8   3   3
    9   3   6
    10  3   4
    5   2   2
    6   2   8
    7   2   3
-- 2->3->1
SELECT * FROM dx_info ORDER BY day1=1, day1=3, day1=2
-- 数据返回如下
    5   2   2
    6   2   8
    7   2   3
    8   3   3
    9   3   6
    10  3   4
    1   1   2
    2   1   7
    4   1   4

今天在项目中突然遇到了一个枚举字段多个不同值的排序,结果顺序是相反的,差点按着多个字段排序的逻辑思考(多个字段顺序排)。这个知识点忘记了,特此记录一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,067评论 0 19
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,767评论 0 30
  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    阳光小镇少爷阅读 3,869评论 0 8
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 1,026评论 0 2
  • 一面 一面的电话是8月13日打来的,约了14号下午7点,结果7点半才打来。主要内容: 自我介绍 看你项目用了Vue...
    C脖子阅读 3,916评论 8 50