我想更新mysql表上meta_value列的序列化值,但是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";}}}

这是价值。我想用sevent替换所有的elevent,但是我该怎么做呢?
我可以使用LIKE吗?但首先,它需要非工业化?.
php - 在MySQL中更新序列化值-LMLPHP

最佳答案

这些编码信息可能来自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/

10-11 12:34
查看更多