数据库SQL语句批量替换实战
写这篇文章的原因是在2018年3月8日开始做一个网络森林的项目,主要是做电子证书,实现的原理中涉及一个图片证书,因为图片众多同时为了优化图片的加载速度采用了腾讯云的万象优图图片云端处理技术。也就是处理为类似于自动加水印自动转为统一格式的图片,根据万象优图计算公式图片的运算结果是 “图片地址+图片处理公式”
https://tu.wlong.pw/2018/04/02/3736380022.png?imageMogr2/thumbnail/720x/format/webp/interlace/0/quality/80%7Cwatermark/2/text/Q05EeXVu/font/UGluZ0ZhbmcudHRj/fontsize/20/fill/IzY2NjY2Ng/dissolve/80/gravity/southest/dx/10/dy/10
但是这样虽然实现了我们想要的效果但是长长的图片地址因为涉及上百的证书也不好以后修改所以经过思考采用“图片地址+样式”
https://tu.wlong.pw/2018/04/02/3736380022.png/logo
是不是简单了许多,可是前期已经是“图片地址+图片处理公式”又不能一个一个修改编辑(如果你愿意也行,就是麻烦点)所以可以选择在数据库端批量替换,原理是
update 表名 set 指定字段 =replace(指定字段,'要替换的字符串','想要的字符串') where 条件
update t_user set url =replace(url,'192.168.','222.222.')
针对上述案例具体代码:
update typecho_contents set test =replace(text,'?imageMogr2/thumbnail/720x/format/webp/interlace/0/quality/80%7Cwatermark/2/text/Q05EeXVu/font/UGluZ0ZhbmcudHRj/fontsize/20/fill/IzY2NjY2Ng/dissolve/80/gravity/southest/dx/10/dy/10','/logo')
步骤如下:
这样数据库就批量替换了,题外话,因为我的网站有安全防护,发篇文章都有可能被自己的安全防护拦截,哈哈。