【解決方案 五】---sql語句模糊替換
阿新 • • 發佈:2019-02-18
最近做的專案中,發現一列year資料都帶有”年”,而我想過濾這個字來和其它表來進行聯表查詢,那麼就用到了sql中的函式
update mhi set year = REPLACE(year,substring(year, LOCATE(year,’年’)-1,1),”)
1,首先我想替換掉所有“年”,所以當發現“年”的時候我要替換為空格,此處用到replace函式
replace(str1, str2, str3): 在字串 str1 中,當 str2 出現時,將其以 str3 替代。
update mhi set year = REPLACE(year,此處應該為年字,”)
2,怎麼才能定位到中間的年字呢,我們發現每個年字都出現在四個數字後邊,所以定位到年的index位置就好了,此處用到substring來擷取年字
SUBSTR(str,pos,len): 由中的第位置開始,選出接下去的個字元。
update mhi set year = REPLACE(year,substring(year, 年的位置index,1),”)
3,那麼怎麼才能拿到年的位置呢,就得用到定位函式locate
LOCATE(substr,str) 返回子串 substr 在字串 str 中第一次出現的位置。如果子串 substr 在 str 中不存在,返回值為 0:
update mhi set year = REPLACE(year,substring(year, LOCATE(year,’年’)-1,1),”)
於是全部替換成功,效果如下