失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据库中自定义排序规则 Mysql中自定义字段排序规则 Oracle中自定义字段排序规则 d

数据库中自定义排序规则 Mysql中自定义字段排序规则 Oracle中自定义字段排序规则 d

时间:2019-02-05 22:35:45

相关推荐

数据库中自定义排序规则 Mysql中自定义字段排序规则 Oracle中自定义字段排序规则 d

数据库中自定义排序

场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序(这里看个人需求)。

普通的sql只能对一个字段进行简单的大小排序,如下:

SELECT* FROMbanner ORDER BY`status`,sequence ASC;

这里我们对banner这张表中的status字段先进行排序,然后对排序后的子集再对sequence字段进行排序。

但这样排序的话,我的status的排序顺序就成了0,1,2的顺序了,如何达到1,0,2呢? 就需要使用带数据库的函数,如下:

Oracle(decode函数):

SELECT* FROMbanner ORDER BYdecode( `status`, '别名1', 1, '别名2', 0, '别名3', 2 ),sequence ASC;

Mysql(field函数):

SELECT* FROMbanner ORDER BYfield( `status`, 1, 0, 2 ),sequence ASC;

效果如下:

以上!感谢我的专属DBA刘某~ 😘

数据库中自定义排序规则 Mysql中自定义字段排序规则 Oracle中自定义字段排序规则 decode函数的用法 field函数的用法

如果觉得《数据库中自定义排序规则 Mysql中自定义字段排序规则 Oracle中自定义字段排序规则 d》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。