我的数据(使用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/

10-11 09:01