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为整数类型

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注