【发布时间】:2026-02-14 10:35:01
【问题描述】:
我在表格中有一列以格式存储:
{"field1":"val1","field2":"val4"}
{"field1":"val2","field2":"val5"}
{"field1":"val3","field2":"val6"}
我需要删除所有带有值的 field1(例如 "field1":"val1","field1":"val2","field1":"val3" ),结果应该是
{"field2":"val4"}
{"field2":"val5"}
{"field2":"val6"}
我试图通过替换来实现这一点,但卡在 '"field1":"val1"' 字符串 val1 可以是任何值,例如 null、某个整数。
UPDATE emp SET col = REPLACE(col, '"field1":"val1"', '')
由于 val1 的这个动态值,我被卡住了。
【问题讨论】:
-
您需要使用正则表达式来实现这一点。见this post。但是,有些人似乎找到了解决方法。
-
如果您使用 php,您可以迭代每一行并使用下面的代码来获取没有 field1 $str='{"field1":"val1","field2":"val4 的特定行"}'; $array = json_decode($str); foreach ($array as $key => $value) { if($key=="field1") continue;否则 echo "$key:$value
"; }
标签: mysql sql mysql-json