首页 > 解决方案 > 更新mysql中的序列化值

问题描述

我想更新meta_valuemysql 表上列上的序列化值。但是 json 很难从 sql 中选择。我怎样才能实现。

a:2:{i:0;a:2:{s:19:"sevent_speaker_name";s:8:"John Doe";s:18:"sevent_speaker_img";a:1:{i:0;s:5:"72921";}}i:1;a:2:{s:19:"sevent_speaker_name";s:10:"John Smith";s:18:"sevent_speaker_img";a:1:{i:0;s:5:"72922";}}}

这是价值。我想全部替换seventelevent但我该怎么做?我可以使用LIKE吗?但首先它需要被反序列化?

在此处输入图像描述

标签: phpmysqljson

解决方案


此编码信息可能来自 WordPress 或其他 PHP 框架的数据库;它不是 JSON。请注意,字符串是通过存储字符串长度和字符串内容来编码的:

s:19:"sevent_speaker_name"

可以使用 MySQL 的REPLACE函数替换seventelevent,但也必须注意更新长度值s,否则 WordPress/PHP 将无法读取数据。

可以编写一个 MySQL 查询来更新上面给出的特定示例,但是很难编写一个查询来通用地替换所有字符串。这是一个可以完成工作的工具


推荐阅读