如何在一列中搜索3个字母的单词 - MySQL?

时间:2010-03-26 20:37:25

标签: mysql string

我有一个带有缩写词(Ceo,Cio,..)的'标题'列,我必须将其大写。查找3个字母单词并将其大写的最有效方法是什么?

示例数据:

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

非常感谢你!

2 个答案:

答案 0 :(得分:1)

UPDATE roles SET
title = UPPER(title)

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

WHERE LENGTH(title) = 3

修改

回复您的评论如下:

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

您需要对每个3个字母的单词执行该查询。

答案 1 :(得分:1)

在数据库中进行字符串修改通常很麻烦,所以我认为处理这个问题的最好方法是查找包含您感兴趣的单词的所有行,选择它们,用您选择的客户语言进行替换,然后使用替换的字符串将行更新回数据库。

对于SQL部分,您可以使用regular expression

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

如果你只是想找到你的标题所暗示的所有三个字母的单词,那么请使用:

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