批量替换mysql 表某字段中的部分内容,最近我的论坛被灌水,全部给我发的什么广告信息,和垃圾链接,我通过如下操作批量修改。今天mark下。
通过locate方法和replace方法,substrin方法。
LOCATE(substr,str,pos)
返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 :
1.UPDATE pb_posts SET post_content = REPLACE( post_content, 'leyang.gotoip55.com', 'pangbu.com' )
例如:
2.UPDATE pre_forum_post SET url = REPLACE(url, SUBSTRING(url, LOCATE('<a href="', url)+9,LOCATE('" target', url)-LOCATE('<a href="', url)-9),'www.qq.com');
3.这是我的处理方法,因为机器人灌水是有规律的,我不想把它删除,我想变废为宝,做做假人气。
UPDATE pre_forum_post SET message = REPLACE(message, SUBSTRING(message, LOCATE('[img]static/image/common/sigline.gif[/img]', message),LOCATE('[/size]', message)-LOCATE('[img]static/image/common/sigline.gif[/img]', message)),'[url=http://hao.uiuehome.com]UI设计师网址导航[/url]');