最近工作上遇到了一个问题,需要将存在sql里面的text属性的字段里面的某个特定值批量改为另一个值,当时的第一想法竟然是用java代码取出来后批量更改再更新进去,觉得这个方法效率太低了,于是翻阅了一下sql,(原谅答主以前没遇到过这样的需求,第一时间没想到用sql来解决),知道了用replace函数来解决这一问题,不多说直接上图:
需求是将retry_data里面的addressCity的null值刷成固定的城市名称,比如上海,这时我们可以用replace函数轻松的解决这个批量修改的需求。
`UPDATE lop_retry_order SET retry_data = REPLACE(retry_data,'"addressCity":null','"addressCity":"上海"');`
运行以上代码就可以将所有的addressCity对应的地址改为"上海",我们看下运行之后的结果:
已经将所有addressCity为null的值改成了’上海’。我们现在来看下replace函数:
`update `表名` set `字段名` =replace( `字段名`,'字符串1','字符串2');`
这段sql表示的就是用字符串2替换指定字段中出现的所有字符串1的匹配项。