Mysql数据库字符串替换常用语句
在mysql字符替换函数最多的就是replace函数了,下面我来给大家介绍replace函数的一些不为人知的使用方法,有需要了解的同学可参考。
编辑工作有时需要对以前更新的某些内容进行修改,如果只是简单的几条数据,我们只需要直接去网站后台或者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','赖雪平')
- WHEREINSTR(`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')
- WHEREINSTR(`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`,'[','')--phpfensi.com
- WHEREINSTR(`pro_pub_time`,'[')>0UPDATE`es_product`SET`pro_pub_time`=REPLACE(`pro_pub_time`,']','')
- WHEREINSTR(`pro_pub_time`,']')>0UPDATE`es_product`SET`pro_pub_time`=REPLACE(`pro_pub_time`,'.','-')
- WHEREINSTR(`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')
- WHERESUBSTRING_INDEX(`pro_pub_time`,'-',-1)=''ANDLENGTH(`pro_pub_time`)>0
- ANDLENGTH(`pro_pub_time`)>5
将所有’2005-’这种类型替换成’2005-01-01′,代码如下:
- UPDATE`es_product`SET`pro_pub_time`=CONCAT(`pro_pub_time`,'01-01')
- WHEREINSTR(`pro_pub_time`,'-')>0ANDLENGTH(`pro_pub_time`)=5
将所有 饱含’-',但是位数小于8的改成追加’-01′,代码如下:
- UPDATE`es_product`SET`pro_pub_time`=CONCAT(`pro_pub_time`,'-01')
- WHEREINSTR(`pro_pub_time`,'-')>0ANDLENGTH(`pro_pub_time`)>8
将所有’2005′这样的改成’2005-01-01′,代码如下:
- UPDATE`es_product`SET`pro_pub_time`=CONCAT(`pro_pub_time`,'-01-01')
- WHEREINSTR(`pro_pub_time`,'-')=0ANDLENGTH(`pro_pub_time`)=4
最后将所有’2005-01-01′格式化成’2005年01月’,代码如下:
- UPDATE`es_product`
- SET`pro_pub_time`=DATE_FORMAT(`pro_pub_time`,'%Y年%m月')
- WHEREINSTR(`pro_pub_time`,'-')>0
热门评论