我正在运行一个返回字母数字结果的选择,例如:
ABC-1
ABC-2
ABC-10
SAM-1
SAM-2
SAM-10
SAM-20
我尝试过使用:
ORDER BY CAST(mid(field_name, 6, LENGTH(class) -5) AS unsigned)
和
ORDER BY filed_name + 0 ASC
这有助于提供一些订单,但我似乎无法在-10之前订购-2
非常感谢答案 0 :(得分:1)
怎么样
ORDER BY
LEFT(field_name, INSTR(field_name, '-') - 1),
CAST(
SUBSTRING(field_name, INSTR(field_name, '-') + 1) AS INTEGER
)