[英]Alphanumeric mysql sort
我知道已經對此進行了很多討論,並且我已經閱讀了很多關於q / a的內容,以達到我所能理解的范圍。 我幾乎可以完美地工作了,但還不是很完美。 以下是我得到的結果和所需條件的示例。
CMG-1
CMG-1GP
CMG-1EN
CMG-2GP
CMG-2
CMG-2EN
CMG-3
etc...
我必須訂購的代碼是
ORDER BY CAST( SUBSTRING( items.item_num, INSTR( items.item_num, '-' ) +1 ) AS UNSIGNED ) ASC
這在大多數情況下都有效,但不能正確地對數字進行排序。 前綴是不同的字母和長度,因此可以忽略前綴。 是在數字排序不正確之后。 有什么建議么?
嘗試:
SELECT item_num
FROM Table1
ORDER BY LEFT(item_num,3)
, CAST( SUBSTRING(item_num, INSTR(item_num, '-' ) +1 ) AS UNSIGNED)
, item_num
;
演示: SQL Fiddle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.