替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

MySQL提供了一個非常實用的字符串函數——REPLACE() 函數,它允許用新的字符串替換字段中的特定字符串,而不再需要自己寫函數去替換,用起來非常的方便。

REPLACE() 函數語法

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

需要注意的是,MySQL中也有一個叫作 REPLACE的語句,它用於插入或更新數據,使用 REPLACE語句 寫入一條記錄時, 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然後插入新的數據,否則,直接插入新數據。

因此不要將REPLACE語句 與這裡的 REPLACE()函數混淆,在文中末尾附REPLACE語句介紹文章鏈接。


REPLACE()函數

REPLACE() 函數中有三個參數,它將 string 中的 old_string 替換為new_string 字符串

REPLACE() 函數能夠幫助我們非常方便的替換字段中的文本,比如更新失效的URL,糾正拼寫錯誤等。

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

如上,url_information 表中Tony 的url鏈接已經失效,我們需要將Tony的url中的 mp 替換為www,在UPDATE語句中使用 REPLACE()函數 的語法如下:

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

執行結果如下:

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

注意:當搜索要替換的文本時,MySQL使用區分大小寫匹配來執行要替換的字符串的搜索。


這裡我們再額外瞭解下另一個被用作替換字符串的函數——MySQL INSERT()函數

INSERT() 函數語法

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

INSERT() 函數返回字符串 s1,子字符串起始於 x 位置,被字符串s2取代len個字符。

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

接下來,我們使用如上 url_information 表來體驗一下 INSERT()函數,如下:

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

執行上述三條SQL,結果如下:

替換某字段中的特定字符串——MySQL REPLACE 與INSERT 函數詳解

我們結合如上執行結果,來了解一下INSERT() 函數的用法:

  • 第一個函數 INSERT(url,5,7,'baidu')將從url字段第 5 個字符開始長度為 7 的字符串替換為 'baidu'。
  • 第二個函數 INSERT(url,-1,4,'baidu') 中的起始位置 -1 超出了字符串長度,直接返回原字符串
  • 第三個函數 INSERT(url,5,20,'baidi') 替換長度超出了原字符串長度,則從第 5 個字符開始,截取後面所有的字符,並替換為指定字符 'baidu'。

REPLACE語法介紹:


分享到:


相關文章: