在mysql字符替換函數(shù)最多的就是replace函數(shù)了,下面我來給大家介紹replace函數(shù)的一些不為人知的使用方法,有需要了解的同學(xué)可參考。
編輯工作有時需要對以前更新的某些內(nèi)容進(jìn)行修改,如果只是簡單的幾條數(shù)據(jù),我們只需要直接去網(wǎng)站后臺或者M(jìn)YSQL數(shù)據(jù)表中修改即可,但如果需要批量修改大量同一字符串時,就需要靈活的選用MYSQL語句進(jìn)行批量替換,常用Mysql數(shù)據(jù)庫字符串替換語句如下
replace替換字符串的實現(xiàn)方法:
mysql中replace函數(shù)直接替換mysql數(shù)據(jù)庫中某字段中的特定字符串,不再需要自己寫函數(shù)去替換,用起來非常的方便,mysql 替換函數(shù)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`, '[','') --Vevb.com
- 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
將所有 飽含’-',但是位數(shù)小于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
|
新聞熱點
疑難解答
圖片精選