上面很多人的解决方案,都认为那个字段只存了 1 个或 n 个 url,没考虑到会有其他文字的情况,这些人的解决方案都是错的,这种情况只能用正则,也就是我这条 SQL:
update wp_posts set post_content = REGEXP_REPLACE(post_content, '\-[0-9]{3,5}x[0-9]{3,5}', '') where 1;
所以,上面这条 SQL 是最优也是最简单的方案,实现有两个方法:
1、本地装 mysql 8.0,线上数据拉取到本地,执行上面 SQL,数据修复后,线上替换成新数据。
2、参考 https://blog.csdn.net/qq_35861801/article/details/103183360 ,给 mysql 5.7 自定义函数,然后线上直接替换。
至于数据拖出来用 PHP 等脚本来跑,这种方案太繁琐,不至于。 |