Mysql自定义排序

发布时间: 2023-11-21 13:22 阅读: 文章来源:1MUMB5166PS

在使用mysql的时候我们经常需要用到排序方法,也就是order by,如果是数字类型的字段,我们一般用order by 或者order by desc就能解决, 但是,如果我们要对字符类型的数据进行排序,那么无论正序或者倒序都无法解决,这个时候我们需要使用自定义排序,也就用到了field方法。

下面举个例子,我从王者荣耀的英雄数据库中,看一下每个职业的最大生命值:

select role_main,max(hp_max) max_hp from heros group by role_main

默认结果是这样:

如果我们用正序排列:

select role_main,max(hp_max) max_hp from heros group by role_mainorder by role_main

结果:

倒序排列:

select role_main,max(hp_max) max_hp from heros group by role_mainorder by role_main desc

结果:

使用field方法自定义排序:

select role_main,max(hp_max) max_hp from heros group by role_mainorder by field(role_main, ‘法师‘, ‘射手‘, ‘辅助‘, ‘战士‘, ‘坦克‘, ‘刺客‘)

结果:

这样我们就完成了mysql自定义排序方法,field函数的语法为:第一个参数是被排序的字段名,之后按顺序输入该字段下的具体值即可。

•••展开全文