2013-10-25 80 views
0

我想訂購mysql記錄的一列,其值以N,Y,F,P,U開頭。列的類型是VARCHAR。我想根據此列的值的第一個字母按列排序。 特定的順序是N - Y - F - P - U。 因此,第一條記錄必須是某個列的值爲N的記錄,第二條記錄的列的值以Y開頭,依此類推。如何以自定義順序排列mysql行?

如何按列的值的第一個字母排序?

回答

3
SELECT 
... 
ORDER BY 
CASE SUBSTR(one_column,1,1) 
    WHEN 'N' THEN 0 
    WHEN 'Y' THEN 1 
    WHEN 'F' THEN 2 
    WHEN 'P' THEN 3 
    WHEN 'U' THEN 4 
    ELSE 5 
END 

...或加入查找值表或使用IF函數將char映射到數字。

+0

....和往常一樣,正確的答案是規範化您的數據。 – symcbean