一千萬個為什麽

搜索

php自然順序排序mysql選擇行

我正在運行一個返回字母數字結果的選擇,例如:

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

非常感謝

最佳答案

怎麽樣

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

轉載註明原文: php自然順序排序mysql選擇行