mysql对数值类型字符串进行排序
有时会遇到这种需求,对数值型的字符串进行排序
在默认情况下使用order by 字段名称 desc/asc 进行排序的时候,mysql进行的排序规则是按照ASCII码进行排序的,并不会自动的识别出这些数据是数值,就会出现比如要排序的字段值是1,2,3,11,12,排序完的结果会变成1,11,12,2,3,
很显然,这不是我们想要的,通过查阅资料,发现了一下三种方式可以使用
select * from 表名 ORDER BY `数值型字符串字段名`*1;
select * from 表名 ORDER BY `数值型字符串字段名`+0;
select * from 表名 ORDER BY CAST(数值型字符串字段名 AS DECIMAL);