按字母顺序更新数据库字段值

时间:2013-04-29 20:25:21

标签: mysql

重新排序行

我的数据库中的一行,它是一个随机顺序,带有以下字符

HFMNLBX#&安培;我

输入奇怪,行如HF和FH,它们都相当于系统。有没有办法更新所有行按字母顺序排列,然后是最后的字符?

由于

1 个答案:

答案 0 :(得分:1)

这是一种按字母顺序排列列中字符的方法:

select concat((case when col like '%A%' then 'A' else '' end),
              (case when col like '%B%' then 'B' else '' end),
              . . .
              (case when col like '%Z%' then 'Z' else '' end)
             ) as newcol
from t

请注意,这不会处理重复的字母。

我不确定你的意思是“最后的人物”。例如,您可以使用子查询来处理它们的一部分。

或者,如果你想保留#之后的所有内容,例如:

select concat((case when col like '%A%#%' then 'A' else '' end),
              (case when col like '%B%#%' then 'B' else '' end),
              . . .
              (case when col like '%Z%#%' then 'Z' else '' end),
              substring(col, locate('#', col) - 1)
             ) as newcol
from t