重新排序行更新数据库字段值
在我的数据库是一排随机顺序具有下列特征
HFMNLBX#&我
这是输入古怪,并且各行如HF和FH,它们都等同于系统。有没有办法更新所有行按字母顺序排列,然后结束字符?
感谢
重新排序行更新数据库字段值
在我的数据库是一排随机顺序具有下列特征
HFMNLBX#&我
这是输入古怪,并且各行如HF和FH,它们都等同于系统。有没有办法更新所有行按字母顺序排列,然后结束字符?
感谢
这里是按字母顺序排列在一列中的字符的方式:
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
旁注:这将删除任何非字母字符,如“#” “或者”!“,我想这个问题的起始者最后想要他们(但很难理解) – 2013-04-29 23:18:06
@nicogawenda。 。 。第一个查询将会。第二个将所有内容保存在'#'之后。 – 2013-04-29 23:20:46
嗯好吧,确定非alpha字符被#前缀,然后冷却解决方案:) – 2013-04-29 23:24:56
也许这一个帮助http://stackoverflow.com/questions/3427208/sorting-string-characters-in-mysql – 2013-04-29 20:29:56
你当前的MySQL查询是什么? – Jocelyn 2013-04-29 20:31:07
我还没有查询。我想将行设置为字母顺序,例如HML将变为HLM,XB将变为BX等等 – 2013-04-29 20:33:05