为了账号安全,请及时绑定邮箱和手机立即绑定

在MySQL中以数字方式对varchar字段进行排序

在MySQL中以数字方式对varchar字段进行排序

喵喵时光机 2019-11-02 13:18:52
我有一个number类型字段varchar。即使它是type varchar,它也存储带有可选前导零的整数值。排序按字典顺序排序("42"在之前"9")。如何订购的数值("9"来之前"42")?当前,我使用查询:SELECT * FROM table ORDER BY number ASC
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

对于具有Er353,ER 280,ER 30,ER36之类的值的表,默认排序将给出ER280 ER30 ER353 ER36


SELECT fieldname, SUBSTRING(fieldname, 1, 2) AS bcd, 

CONVERT(SUBSTRING(fieldname, 3, 9), UNSIGNED INTEGER) AS num 

FROM table_name

ORDER BY bcd, num;

结果将按此顺序ER30 ER36 ER280 ER353


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 1239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信