例如,我在列号中有这个数据:M1, M2, ... M9, M10, U1, U2
。在MySQL查询中,我有:ORDER BY number ASC
,但顺序显示为:M1, M10, M2 ... U1, U2
。我该怎么做才能使订单如下:M1, M2, ... M9, M10, U1, U2
?这可能吗?
如果您去掉第一个字符,然后将结果强制转换为它的整数值,您可以这样做:
...ORDER BY SUBSTRING(mycolumn, 1, 1),
SUBSTRING(mycolumn, 2) + 0
更新为先按字母排序,然后按字母后面的数值排序。