簡體   English   中英

字母數字mysql排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM