我的数据(使用ORDER BY进行订购时)如下所示:
PART-320
PARTe-160 reducer
PARTe-240
PART-90
PART-30
PARTe-160
PART-960
PART-other
PARTe-250
PART-???
PARTe-1400
PARTe-1000
PARTe-30
...
PART-40
PARTe-120
PARTe-10
PART-120
PARTe-350
我想使用一些类似的规则对它进行排序:
数字部分按第一个排序
其余的都没关系
我正在考虑解析
-
(连字符)之后的部分,但不确定如何处理带有“ reducer”的行,也不确定如何处理其中一行或???
中的问号other
。 最佳答案
您可以使用substring_index()
进行此操作,假设数字部分位于-
之后:
order by substring_index(col, '-', -1) + 0
+ 0
对最后一个字段进行“无提示转换”。关于mysql - MySQL-使ORDER BY按数字排序嵌入到字符串字段中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26348183/