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

我有一个number类型字段varchar。即使它是type varchar,它也存储带有可选前导零的整数值。排序按字典顺序排序("42"在之前"9")。如何订购的数值("9"来之前"42")?


当前,我使用查询:


SELECT * FROM table ORDER BY number ASC


喵喵时光机
浏览 1240回答 3
3回答

慕姐8265434

对于具有Er353,ER 280,ER 30,ER36之类的值的表,默认排序将给出ER280 ER30 ER353 ER36SELECT fieldname, SUBSTRING(fieldname, 1, 2) AS bcd, CONVERT(SUBSTRING(fieldname, 3, 9), UNSIGNED INTEGER) AS num FROM table_nameORDER BY bcd, num;结果将按此顺序ER30 ER36 ER280 ER353
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL