MySQL提供了一個非常實用的字符串函數——REPLACE() 函數,它允許用新的字符串替換字段中的特定字符串,而不再需要自己寫函數去替換,用起來非常的方便。
REPLACE() 函數語法
需要注意的是,MySQL中也有一個叫作 REPLACE的語句,它用於插入或更新數據,使用 REPLACE語句 寫入一條記錄時, 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然後插入新的數據,否則,直接插入新數據。
因此不要將REPLACE語句 與這裡的 REPLACE()函數混淆,在文中末尾附REPLACE語句介紹文章鏈接。
REPLACE()函數
REPLACE() 函數中有三個參數,它將 string 中的 old_string 替換為new_string 字符串。
REPLACE() 函數能夠幫助我們非常方便的替換字段中的文本,比如更新失效的URL,糾正拼寫錯誤等。
如上,url_information 表中Tony 的url鏈接已經失效,我們需要將Tony的url中的 mp 替換為www,在UPDATE語句中使用 REPLACE()函數 的語法如下:
執行結果如下:
注意:當搜索要替換的文本時,MySQL使用區分大小寫匹配來執行要替換的字符串的搜索。
這裡我們再額外瞭解下另一個被用作替換字符串的函數——MySQL INSERT()函數。
INSERT() 函數語法
INSERT() 函數返回字符串 s1,子字符串起始於 x 位置,被字符串s2取代len個字符。
接下來,我們使用如上 url_information 表來體驗一下 INSERT()函數,如下:
執行上述三條SQL,結果如下:
我們結合如上執行結果,來了解一下INSERT() 函數的用法:
- 第一個函數 INSERT(url,5,7,'baidu')將從url字段第 5 個字符開始長度為 7 的字符串替換為 'baidu'。
- 第二個函數 INSERT(url,-1,4,'baidu') 中的起始位置 -1 超出了字符串長度,直接返回原字符串 。
- 第三個函數 INSERT(url,5,20,'baidi') 替換長度超出了原字符串長度,則從第 5 個字符開始,截取後面所有的字符,並替換為指定字符 'baidu'。
REPLACE語法介紹:
閱讀更多 軟件測試開發技術棧 的文章