2017-05-28 226 views
0

反正是有其數量與數字字段中的字符串進行排序僅 我有這樣Mysql的自然中varchar字段排序

subject_code  
DE 312 
DE 313 
DE 315 
Eng 311 
COMP 314 

值也可以是有點像這個

subject_code 
Eng 311 
DE 312 
DE 313 
COMP 314  
DE 315 

我試過

order by SOUNDEX(subject_code),LENGTH(subject_code),subject_code 

但它不能正常工作。

謝謝你的任何幫助和建議。

回答

0

您的情況的一種解決方法使用字符串操作來獲取數字主題代碼並將其用於排序。

SELECT 
    subject_code 
FROM yourTable 
ORDER BY 
    CAST(SUBSTR(subject_code, 
       INSTR(subject_code, ' ') + 1) AS UNSIGNED) 

但是,您應該真正將文本和數字代碼存儲在單獨的列中。

輸出:

enter image description here

演示在這裏:

Rextester

+0

完美..謝謝我應該分開山坳與int和string – sanu