MySQL 字符串类型转换为数字 排序操作

最近项目中在写sql时,遇到要按字符串类型的数字排序,直接排序不行,那就需要把字符串类型转换成数字后,再进行排序。

字符串格式的话排序是这样的:

1 10 11 12 2 20 21 …

这种排列顺序不是我们想要的。

想要转化成数字,变成 1 2 10 11 20 21 的顺序。

三种解决方法:

1.数字后面直接加0,即:(value+0)格式

select * from sys_user order by (sort+0) desc

2.使用cast()函数,即:cast(value as type)格式

select * from sys_user order by cast(sort as signed) desc

3.使用convert()函数,即:convert(value , type)格式

select * from sys_user order by convert(sort , signed) desc

备注:value 代表字符串类型的字段 ,type代表要转换的类型 signed为整数类型

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】

MySQL 字符串类型转换为数字 排序操作

`微信`扫码 加好友

链接到文章: https://gkxyz.com/mysql-zifuchuanleixingzhuanhuanweishuzi-paixucaozuo.html

推荐站点

评论已关闭