php - 更新mysql中的序列化值

标签 php mysql json

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

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";}}}

这是值(value)。我想用 elevent 替换所有 sevent 但我该怎么做呢? 我可以使用 LIKE 吗?但首先它需要反序列化吗?

enter image description here

最佳答案

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

s:19:"sevent_speaker_name"

可以使用MySQL的REPLACE函数将sevent替换为elevent,但是一定要注意更新长度值s 也一样,否则 WordPress/PHP 将无法读取数据。

可以编写一个 MySQL 查询来更新上面给出的具体示例,但是很难编写一个查询来通用地替换所有字符串。这是一个 tool就可以了。

关于php - 更新mysql中的序列化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51854120/

相关文章:

php - 如何制作类似 Facebook 的通知表结构?

php - 有没有办法为同一个表组合多个连接?用于 V 4.6 的 WP 元查询

mysql - 当表没有任何行时,程序给出错误

json - 我如何修改我的 jQuery ajax 响应,以通过返回 JavaScript 对 JSON 执行与当前相同的操作?

php - 无法使用 MySQL 查询检查两列中的值

php - 在逗号字符处拆分字符串,但如果所述字符嵌套在括号内则忽略

php - 在子查询中选择多行或逃避子查询

mysql - mysqldbcompare 实用程序可以在 AIX 上使用吗?

java - 如何为具有整数键的json对象创建pojo类?

c# - 使用 JsonConvert.DeserializeObject (Json.net) 反序列化 - 按动态类型