我有一些数据是用 php 数组序列化后存储在 MySQL 中,现在想在数据库里替换掉数组中的一些字符串内容。
比方说,我现在序列化数组中有包含了 www.aa.com ,现在想把它批量替换成 www.aaa.com 。
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://www.aa.com', 'http://www.aaa.com')
无法直接用这条 MySQL 命令直接改,因为 php 序列化数组还包含了字符串长度,替换会增加字符串长度而导致不匹配无法正常反序列化。
求教各位大佬有没有其他方法解决这个问题。
1
foam 2020-05-20 00:43:52 +08:00 via Android
别想那么多,用脚本读出来,修改后再写回去。
|
2
hsk9044 2020-05-20 09:48:03 +08:00
最好还是读出来反序列化再写回去, 因为替换序列化后的文本复杂度肯定比较高, 这个时候不管是从性能的角度还是从开发速度的角度, 用 sql 语句的效率都没有直接用程序写的高
|