回覆列表
-
1 # 奇妙的探尋
-
2 # 軟體測試開發技術棧
如問題所言,替換某欄位中的特定字串。在MySQL提供了一個非常實用的字串函式——REPLACE() 函式,它允許用新的字串替換欄位中的特定字串,能夠幫助我們非常方便的替換欄位中的文字,比如更新失效的URL,糾正拼寫錯誤等。
REPLACE函式語法REPLACE函式中有三個引數,它將 string 中的 old_string 字串替換為new_string 字串。
如上,url_information 表中Tony 的 url 連結資訊 已經失效,我們需要將Tony的url中的"mp" 字串替換為"www" 字串,在UPDATE語句中使用 REPLACE()函式 的語法如下:
上述SQL執行結果如下:
注意:當搜尋要替換的文字時,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"。
修改欄位裡的所有含有指定字串的文字
UPDATE 表A SET 欄位B = replace(欄位B, "aaa", "bbb")
example: update table set url= replace(url, "aaa", "bbb") 【將url欄位中的aaa批次更改為bbb】
update table set url= REPLACE (url,"3","1.png") where 條件;