站編輯工作有時需要對以前更新的某些內容進行修改,如果只是簡單的幾條資料,我們只需要直接去網站後台或者MYSQL資料表中修改即可,但如果需要批量修改大量同一字串時,就需要靈活的選用MYSQL語句進行批量替換,常用Mysql資料庫字串替換語句如下
replace替換字串的實現方法:
mysql中replace函數直接替換mysql資料庫中某欄位中的特定字串,不再需要自己寫函數去替換,用起來非常的方便。 mysql 替換函數replace()
代碼如下 |
複製代碼 |
?UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` LIKE '%from_str%' |
說明:
table_name —— 表的名字
field_name —— 欄位名
from_str —— 需要替換的字串
to_str —— 替換成的字串
將web_cn0797表subject欄位中的xxxxccc替換成 賴雪平
代碼如下 |
複製代碼 |
UPDATE `web_cn0797` SET `subject` = REPLACE(`subject`, 'xxxxccc', '賴雪平') WHERE INSTR(`subject`,'xxxxccc') > 0替換web_cn0797表的message欄位,將“viewthread.php?tid=3989” |
替換成“viewthread.php?tid=16546”
代碼如下 |
複製代碼 |
UPDATE `web_cn0797` SET `message`= REPLACE(`message`, 'viewthread.php?tid=3989', 'viewthread.php?tid=16546') WHERE INSTR(`message`,'viewthread.php?tid=3989') > 0 ; |
刪除所有的空格
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = TRIM(`pro_pub_time`) |
刪除所有飽含’['或者']‘或者’.'的字元
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '[','') WHERE INSTR(`pro_pub_time`,'[') > 0UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ']','') WHERE INSTR(`pro_pub_time`,']') > 0UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '.','-') WHERE INSTR(`pro_pub_time`,'.') > 0 |
替換所有含中文’-'的為英文’-’
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '-','-')
WHERE INSTR(`pro_pub_time`,'-') > 0將所有的年月都替換成’-’
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '年','-') WHERE INSTR(`pro_pub_time`,'年') > 0UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '月','-') WHERE INSTR(`pro_pub_time`,'月') > 0 |
將所有’2005-04-’這種類型的替換成’2005-04-01′
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01') WHERE SUBSTRING_INDEX( `pro_pub_time`, '-', -1) = '' AND LENGTH(`pro_pub_time`) > 0 AND LENGTH(`pro_pub_time`) > 5 |
將所有’2005-’這種類型替換成’2005-01-01′
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) = 5 |
將所有 飽含’-',但是位元小於8的改成追加’-01′
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) > 8 |
將所有’2005′這樣的改成’2005-01-01′
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = CONCAT(`pro_pub_time`,'-01-01') WHERE INSTR(`pro_pub_time`,'-') = 0 AND LENGTH(`pro_pub_time`) = 4 |
最後將所有’2005-01-01′格式化成’2005年01月’
代碼如下 |
複製代碼 |
UPDATE `es_product` SET `pro_pub_time` = DATE_FORMAT(`pro_pub_time`,'%Y年%m月') WHERE INSTR(`pro_pub_time`,'-') > 0 |