2016-05-03 32 views
0

我正試圖從替換特定文本所有的發生從mysql中的字段。如何替換mysql中列開始處的特定文本?

我在代碼字段中有以下數據。

代碼


hello12

12hello

12hel12

1212hi1


我想下面的輸出

你好

hel12

12hi1


我曾嘗試下面的代碼

UPDATE code_table 
SET code = REPLACE(code, '12', '') 

輸出

你好

你好

HEL

HI1

我也試過這個代碼

UPDATE code_table 
    SET code = REPLACE(code, '12', '') 
    where code regexp ('^12') 

但我得到以下輸出

你好

HEL

HI1

這是因爲Where子句只檢查數據是否有字符串開頭的,並且將全部出現的12從字符串中取出。

有什麼方法可以使用正則表達式裏面的取代

回答

2

您可以選擇用12字頭的記錄,那麼就替換子記錄: update code_table set code = substring(code, locate("12", code)+length("12")) where code regexp '^12';

+0

的Tx伴侶。它的工作:) – shuvrow

+0

請注意,使用WHERE代碼LIKE '12%''比** regexp **效率更高 – htafoya