比方说,我有一个表,我想用一些字符串和大小按字段排序。当我使用 ORDER BY size
时,它会得到如下内容:
size 100
size 105
size 110
size 115
size 85
size 90
size 95
每行的字符串可以不同,这只是示例,当有相同的字符串时 - size
。我想返回:
size 85
size 90
size 95
size 100
size 105
size 110
size 115
我知道,可以使用 ORDER BY CAST(size AS UNSIGNED)
完成按数字字符串的排序,但是当它不是数字字符串,但字段是带数字的字符串时,该怎么做?
最佳答案
我的简单方法是使用长度作为键:
order by length(size), size
或者,使用 substring_index()
:
order by substring_index(size, ' ', 1),
substring_index(size, ' ', -1) + 0
+ 0
进行静默转换,将第二个值转换为数字。
关于mysql - 按数字顺序排列字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546971/