# mysql字符串数字大小排序
对mysql数值字符串类型进行排序,在默认情况下使用order by 字段名称 desc/asc 进行排序的时候,mysql进行的排序规则是按照ASCII码进行排序的,并不会自动的识别出这些数据是数值
order by 字段名称+0 desc/asc的形式进行排序
----这样mysql会将数值字符串类型的数据当作数值进行处理,但是存在效率问题,不推荐使用varchar/char类型来存储数值,这样会带来不不必要的问题.
查询数据对数字排序的时候出现1 11 12 13 14....2 21 22 23 24...
现需要按数字大小排序则需要处理
①:ORDER BY 字段+0
②:ORDER BY CAST(字段 AS SIGNED)
③:ORDER BY 字段*1
根据测试此方式只支持纯数字(1,10)或者以数字开头(1a,11a)的字段,如果字段是按字符+数字形式的(a1,a2,b1,b2,a1a,a2a),则上面的方式达不到排序的目的