php自然顺序排序mysql选择行

时间:2010-04-19 12:24:54

标签: php mysql natural-sort

我正在运行一个返回字母数字结果的选择,例如:

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

非常感谢

1 个答案:

答案 0 :(得分:1)

怎么样

ORDER BY 
  LEFT(field_name, INSTR(field_name, '-') - 1),
  CAST(
    SUBSTRING(field_name, INSTR(field_name, '-') + 1) AS INTEGER
  )