需求分析:数据库中一个text文本中的如字段:blog_content,内容是:你好,这是一篇博客,欢迎阅读。想要把其中的 博客 换成blog。
解决思路:
那么用代码可能需要先取出,然后进行字符串替换,然后再更新到数据库。这样是没问题的。但是如果是大量记录需要批量更换,那么效率就非常差,可能会产生阻塞,jdbc长连接影响其它线程。
换个角度:
那么,实际上mysql的内建函数replace()就提供了这个功能。也就是不需要出数据库就完成修改
sql语句写法:
sql语句为:
sql语句为:UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE ……
说明: table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串
一个需求写法就是:把user_blog表中所有blog_content字段中blog_id不为 ‘1’ 的内容的192.168.1.110 换成192.168.73.187,实现如下,sql语句经过测试没问题,就不贴结果了
UPDATE user_blog SET blog_content = REPLACE (blog_content,'192.168.1.110','192.168.73.187')WHERE blog_id != '1';
删除某个字段:
删除某个字符串可以这样写:
UPDATE ecs_goods SET goods_name=REPLACE(goods_name, 'VANCL凡客诚品 ', '');