在mysql中排序之前
|用户(列名)
2-0904-2号
五十二
一百
一百零一
一百零二
一百零三
一百零四
一百零八
一百零九
十一
一百一十二
一百一十三
一百一十四
十二
十三
十四
十五
十六
十八

在mysql中排序后
|用户(列名)

2-0904-2<br>

五十二
一百
一百零一
一百零二
一百零三
一百零四
一百零八
一百零九
十一
一百一十二
一百一十三
一百一十四
十二
十三
十四
十五
十六
十八

按excel排序后的预期结果
|用户(列名)
2-0904-2号

十一
十二
十三
十四
十五
十六
十八
五十二
一百
一百零一
一百零二
一百零三
一百零四
一百零八
一百零九
一百一十二
一百一十三
一百一十四

最佳答案

在mysql中,可以很容易地将字符串转换为数字。您还可以测试字符是否为数字。
这将产生您正在寻找的类型:

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

第一句把数字放在第一位。第二个将前导数字转换为数字以进行排序。字符串的最后一个按列值排序的顺序。

关于php - mysql中的排序应该与excel中的排序相同吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21406240/

10-10 00:31
查看更多