在本教學中,我們將向您展示如何使用MySQL字串REPLACE()
函式在字串中替換另一個子字串。
MySQL為您提供了一個有用的字串函式REPLACE()
,它允許您用新的字串替換表的列中的字串。
REPLACE()
函式的語法如下:
REPLACE(str,old_string,new_string);
REPLACE()
函式有三個引數,它將string
中的old_string
替換為new_string
字串。
注意: 有一個也叫作REPLACE的語句用於插入或更新資料。所以不要將
REPLACE
語句與這裡的REPLACE
字串函式混淆。
REPLACE()
函式非常方便搜尋和替換表中的文字,例如更新過時的URL,糾正拼寫錯誤等。
在UPDATE語句中使用REPLACE
函式的語法如下:
UPDATE tbl_name
SET
field_name = REPLACE(field_name,
string_to_find,
string_to_replace)
WHERE
conditions;
請注意,當搜尋要替換的文字時,MySQL使用區分大小寫匹配來執行要替換的字串的搜尋。
例如,如果要更正範例資料庫(yiibaidb)中的products
表中的拼寫錯誤,請使用REPLACE
函式,如下所示:
UPDATE products
SET
productDescription = REPLACE(productDescription,
'abuot',
'about');
查詢查詢所有出現的拼寫錯誤詞:abuot
,並通過products
表的productDescription
列中使用正確單詞將其替換。
非常重要的是,在REPLACE
函式中,第一個引數是不帶引號("
)的列名。 如果將引號括起來,就像"field_name"
這樣的欄位名稱,查詢將會將該列的內容更新為"field_name"
,導致意外的資料丟失。
REPLACE
函式不支援正規表示式,因此如果需要使用外部庫中需要使用MySQL使用者定義函式(UDF
)的模式替換文字字串,有關MySQL UDF
請檢視這裡: http://launchpad.net/mysql/udf-regexp