2010-03-26 87 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