熟練使用mysql的replace替換函式
阿新 • • 發佈:2018-12-02
因為一個網站後臺要寫一個數據庫替換的外掛,所以去溫習mysql函式。
如果是基於wordpress就好辦了,因為有大量類似外掛,但是由於是獨立開發,所以只好自己寫一個了。
從昨晚開始在runoob開始從頭看mysql教程手冊,今早三點醒來又開始看,到六點看完了。
函式比較簡單,毋庸置疑,php中有str_replace與preg_replace等強大替換函式!
語法:replace(onject,search,replace)
常用更新,你可以加上where條件等
我們將上面的title內容裡的that給替換成this
UPDATE `posts` SET title=replace(title,'that','this')
注意mysql中欄位及表名用``包括,這可不是單引號,是感嘆號左邊那個,要不會報錯,用框架習慣了,剛我就給寫錯了
完成替換!
在搜尋replace函式的時候,一篇作者有一個使用方法比較技巧,我給記下來。
他在插入資料庫的時候,由於疏忽,有一列文字前面多了一個空格,於是有強迫症的他打算使用以下命令來給替換掉
UPDATE `example` SET `col`=replace(`col`,' ','') where col replace '^ '; 但是使用了這個方法的後果是,行首的空格給去除了,但是列文字間用於分隔詞語的空格也會被去掉。 所以他使用了以下技巧。 首先使用正則匹配和CONCAT()函式在有空格的行前面加上一個字串x 命令如下: UPDATE `example` SET `col`=CONCAT('x',`col`) WHERE `col` REGEXP '^ '; 這樣下來,行前面就多了兩個字元'x ' 然後使用replace來一起替換 UPDATE `example` SET `col`=REPLACE(`col`,'x ','') WHERE `col` REGEXP '^x ';