遇到一个新问题,以前大学老师没有讲过的。我批量采集了一批文章回来,需要在mysql库里面把里面的某些词批量替换为新词,常想到的办法是写一个循环的程序,批量替换以后再update回去就可以了,其实mysql有更简单的办法,mysql本身就直接支持replace 函数的。
比如数据库里面没有一堆数据,我想把标题包含“www.blogguy.cn”的文章标题和文章内容全部替换为"blogguy.cn",最便捷的办法便是直接使用mysql的replace函数,又简单又快捷。
语法:
UPDATE blogguy_cn_tablename SET title=REPLACE(title, 'www.blogguy.cn, 'blogguy.cn'); where newstitle like '%www.blogguy.cn%';
UPDATE blogguy_cn_tablename SET content=REPLACE(content, 'www.blogguy.cn, 'blogguy.cn'); where newstitle like '%www.blogguy.cn%';
执行以下,瞬间就好。
这里还有一点小说明:关于mysql的replace into,这个关键字跟repalce可完全是两码事了,可惜大学老师又没有讲!!!
我们知道insert into一个表的时候,如果指定的主键冲突的话就会返回:主键已经存在冲突错误,所以你插入前不得不检查主键是不是已经存在了,如果不存在才能插进去。现在好了,有了replace into,replace into语法跟insert into 几乎是一模一样,但是功能不一样,replace into是判断是不是已经有重复的主键,如果有的话就先delete原来的记录,再插入新的记录,所以replace into一句就解决了以前的验证+insert into模式,是一个值得注意的用法。
说多了闲话了,转载请注明来自www.blogguy.cn,谢谢各位了!转载连个出处都没有那未免太过分了。



