mysql中的排序应该与excel中的排序相同吗?

时间:2014-01-28 13:00:44

标签: php mysql sql sorting numbers

在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个

1 个答案:

答案 0 :(得分:1)

在MySQL中,您可以轻松地将字符串转换为数字。您还可以测试字符是否为数字。

这应该产生你想要的那种:

order by (left(col, 1) betweeen '0' and '9') desc,
         (col + 0),
         col;

第一个条款将数字放在第一位。第二个将前导数字转换为数字以进行排序。最后的订单是字符串列的值。