如何按自定义顺序订购mysql行?

时间:2013-10-25 19:18:47

标签: mysql sql-order-by

我想通过一个列来命令mysql记录,其值以N,Y,F,P,U开头。列的类型是VARCHAR。我想根据本栏第一个字母的值按列排序。 具体顺序为N - Y - F - P - U. 因此,第一个记录必须是具有某个列值N的记录,第二个记录的列值必须以Y开头,依此类推。

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

1 个答案:

答案 0 :(得分: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映射到数字。