mysql在SQL语句中使用replace替换字符
本来不想告诉大家的,因为采集别人网站不是什么光彩事,但觉得这个技巧实在是够强,要不是这简短的一行代码,我还不累死了。是这样的,采集了一些别人的文章,可能是采集程序的问题,每篇文章的标题里都多出了一些字符<img src="images/awwor.gif">,导致在生成HTML网页后很多内容不显示,但是看了看记录有2000多条,一条一条改,还不累死我啊。于是请教了一个SQL高手,发我一行SQL语句:
代码如下 | |
Update dede_addonsoft SET dxylink=REPLACE(dxylink, '.zip', '.rar') where aid > 45553; update `table_name` set field = replace(field,'.rar','.7z'); |
table_name:要查询的表名,
field:表里的字段名,
replace(field,'.rar','.7z'); :正则匹配,把field字段里的 .rar 替换为 .7z
执行完什么也没见到,可我看了一下数据库,哇塞!!真爽了,<img src="images/awwor.gif">全部都不见了,觉得这个语句真够猛的,也怪自己不懂SQL竟然有如此用法啊,以后要多多研究sql了,事半功倍啊。所以不敢独享本经验,特此与大家分享。另外报告,俺现在已经不搞采集了,就像做人一样老实做站,期待大家的站也有好收成。顺便说下这行代码的含义:
update '表名(比如我的article)' set 要修改的字段名 = replace (要修改的字段名,'被替换的字符','替换后的字符')
补充:
mysql replace用法
1.replace into
replace into table (id,name) values('1','aa'),('2','bb')
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values('1','aa'),('2','bb')
如果存在相同的值则不会插入数据
2.replace(object,search,replace)
把object中出现search的全部替换为replace
select replace('www.163.com','w','Ww')--->WwWwWw.163.com
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')