我想更新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
吗?但首先,它需要非工业化?.最佳答案
这些编码信息可能来自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/