倒序排序_MySQL实践之——自定义排序

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

28fa5f0703be9cf093b64cdba8d6cc54.png

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

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

默认结果是这样:

1d5493bd4453d3b0e53ef37b5965ec79.png

如果我们用正序排列:

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

结果:

ce55e44975f2edd8bd19f14d0ad77a9d.png

倒序排列:

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

结果:

1e43249fe426d4aa92800f9e7826af55.png

使用field方法自定义排序:

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

结果:

ecc570764b19bb70c2bf4cd689747af6.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值