将部分序列化数据“重置”数据替换为标准设置

时间:2019-12-05 08:15:33

标签: sql wordpress adminer

我正在管理数百个网站,需要更改部分序列化数据。 这是一个wordpress子主题,位于主题的“选项”设置之内。

使用此脚本

UPDATE wp_e4e5_options
SET option_value = REPLACE(option_value, 'Copyright | by <a href="https://company.com"', ' ')

a:1:{s:3:"copyright";s:17:"Copyright | by <a href="https://company.com"";}

我确定,它将找到序列化数据的一部分并替换。但事实并非如此。 它将设置重置为主题的标准设置。即使使用表中的Adminer.php手动编辑它,它也会重置。

我知道,这可能是在错误的论坛中,因为它与Wordpress有关,但我认为这是SQL的问题。

所以我的问题是:

  1. 如果我使用Adminer.php( phpMyAdmin),它将所有设置重置为标准设置。我怎么能够 仅编辑序列化数据的一部分,还是仅编辑上面显示的部分?

  2. 是什么使其“重置”为标准设置?

更新: 感谢@Kaperto,现在我有了这个工作代码,这给了我一个新问题。

UPDATE wp_e4e51a4870_options
SET option_value = REPLACE(option_value, 's:173:"© Copyright - Company name [nolink] | by <a href="https://company-name.com" target="_blank" rel="nofollow">Company Name</a>";', 's:40:"© Copyright - Company name [nolink]";')

问题是,它将用作ManageWP循环遍及数百个公司名称不同的网站的代码段。因此,字符串的第一部分是唯一的,但在管道|之后,其余部分在所有站点上都是相同的。

所以我某种程度上需要这样做:

  1. 查找包含该字符串的整个系列| by <a href="https://company-name.com" target="_blank" rel="nofollow">Company Name</a>"
  2. 获取整个系列s:173:"© Copyright - Company name [nolink] | by <a href="https://company- name.com" target="_blank" rel="nofollow">Company Name</a>
  3. 由于公司名称不同,请替换为具有更新字符计数的新系列

使用纯SQL命令甚至可以实现吗?

0 个答案:

没有答案