博客小子:记录我们对互联网和生活的探索! 注册 | 登陆

mysql如何使用replace 批量替换函数

Tags: mysql, replace, 批量, 替换, replace into

遇到一个新问题,以前大学老师没有讲过的。我批量采集了一批文章回来,需要在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,谢谢各位了!转载连个出处都没有那未免太过分了。

Tags: mysql, replace, 批量, 替换, replace into

« 上一篇:关于Ucenter通信失败的又一次调试经历 | 下一篇:ucenter的uc_user_synlogin没有返回值的问题 »

只显示10条记录相关文章

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):