2010-03-26 86 views
1

我有一个带有缩写的首字母缩写(Ceo,Cio,..),我必须大写。找到3个字母词并将其大写的最有效方法是什么?如何在列中搜索3个字母词 - MySQL?

的样本数据:

Title 
----------------------- 
Vp - business, Cio, Ceo 
E Vp, Cfo 
Ceo 
Cio 
Vp 

太谢谢你了!

回答

1

使数据库中的字符串修改一般是凌乱的,所以我觉得处理这一点的最好办法是找到包含您感兴趣的话所有的行,选择它们,是替换在您选择的客户端语言,然后用替换的字符串将行更新回数据库。

对于SQL部分,你可以使用一个regular expression

SELECT * 
FROM table1 
WHERE Title RLIKE '[[:<:]]ceo[[:>:]]' 
    OR Title RLIKE '[[:<:]]vp[[:>:]]' 
    OR ... 

如果你只是想找到这三个字母的单词作为你的标题暗示然后使用此:

WHERE Title RLIKE '[[:<:]][[:alpha:]]{3}[[:>:]]' 
+0

现在取代它们可能是一个挑战,不是吗?感谢您的快速解决方案btw。 – ThinkCode 2010-03-26 21:03:46

1
UPDATE roles SET 
title = UPPER(title) 

我对3个字母的要求感到困惑。为什么“Vp”不会被大写?如果你真的需要它:

WHERE LENGTH(title) = 3 

编辑

在回答下面的评论:

UPDATE roles SET 
title = REPLACE(title, 'Ceo', 'CEO') 

你需要做的查询,每次3个字母的单词。

+0

冠军可以有不同不仅仅是所有3个字母的标题。例如,[首席执行官,Vp Business,Cfo] - 我们如何才能从这个特定的头衔中只使用Cfo,Ceo和Vp?我有几千个我需要照顾的标题。谢谢。 – ThinkCode 2010-03-26 20:45:29

+0

直接替换可能不起作用:例如,'cio'可能作为较大单词的一部分被找到。 – 2010-03-26 20:49:45