2013-06-03 91 views
0

我們如何才能在單個sql(mysql)查詢中實現這一點?在mysql中正則表達式搜索和替換

我需要搜索列中的某些模式,如果有匹配的模式,則用特定的字符串替換該模式。 一樣,如果

pattern ptr1 matches then replace this with str1 
    pattern ptr2 matches then replace this with str2 

我需要一個像更換,可替換正則表達式的功能。 這裏是我的查詢我需要提高這個正則表達式

UPDATE category SET column1 = 
(
    CASE 
    WHEN (column1 REGEXP 'xy') THEN REPLACE(column1, 'xy' , 'ffff') 
    ELSE column1 
    END 
) 

請幫我在這。

+0

感謝我試過的功能,但沒有奏效。它的工作方式,當我傳遞一個字符串像更新類別SET column1 = (CASE WHEN(column1 REGEXP'^ xy')THEN regex_replace('^ xy','ffff','kunal pawar') ELSE column1 END)但沒有工作,當我通過列名像 - 更新類別SET列1 = (CASE WHEN(column1 REGEXP'^ xy')THEN regex_replace('^ xy','ffff',column1) ELSE column1 END ) – kunal

+0

如果您解決了問題,請繼續並回答您自己的問題。 – Roger

回答

0

你可以把多個,同時更新表中的值替換功能 -

UPDATE category SET column1 = 
REPLACE(REPLACE(column1, 
       ptr1, 
       str1), 
     ptr2, 
     str2) 
+0

其實我的問題是這樣的 - 假設我有一個專欄'名稱',然後如果我得到名爲kunal#那麼kunal#應該由pawar取代,如果我找到名稱kunal @那麼它應該被pawar- 1 爲前 hidfds KUNAL#434fdwef - > hidfds帕瓦爾434fdwef hidfds KUNAL @ 434fdwef - > hidfds帕瓦爾-1 434fdwef – kunal

相關問題