MySQL Replace()函式

2019-10-16 22:54:45

在本教學中,我們將向您展示如何使用MySQL字串REPLACE()函式在字串中替換另一個子字串。

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使用區分大小寫匹配來執行要替換的字串的搜尋。

MySQL REPLACE字串函式範例

例如,如果要更正範例資料庫(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