我想通过一个列来命令mysql记录,其值以N,Y,F,P,U开头。列的类型是VARCHAR。我想根据本栏第一个字母的值按列排序。 具体顺序为N - Y - F - P - U. 因此,第一个记录必须是具有某个列值N的记录,第二个记录的列值必须以Y开头,依此类推。
如何按列的第一个字母排序?
答案 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映射到数字。