1. 程式人生 > >熟練使用mysql的replace替換函式

熟練使用mysql的replace替換函式

因為一個網站後臺要寫一個數據庫替換的外掛,所以去溫習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 ';