在mysql中排序之前
|用户| (列名)
2-0904-2
52个
100个
101个
102个
103个
104个
108个
109个
11个
112个
113个
114个
12个
13个
14个
15个
16个
18个
2个
在mysql中排序
|用户| (列名)
2-0904-2<br>
52
100个
101个
102个
103个
104个
108个
109个
11个
112个
113个
114个
12个
13个
14个
15个
16个
18个
2个
按照excel 排序后的预期结果
|用户| (列名)
2-0904-2
2
11个
12个
13个
14个
15个
16个
18个
52个
100个
101个
102个
103个
104个
108个
109个
112个
113个
114个
答案 0 :(得分:1)
在MySQL中,您可以轻松地将字符串转换为数字。您还可以测试字符是否为数字。
这应该产生你想要的那种:
order by (left(col, 1) betweeen '0' and '9') desc,
(col + 0),
col;
第一个条款将数字放在第一位。第二个将前导数字转换为数字以进行排序。最后的订单是字符串列的值。