删除json里面的数组数据,可以用以下的sql操作。
UPDATE A
SET B= JSON_REMOVE(
B, REPLACE(json_search(B, 'one', 1), '"', '') )
WHERE A_id = 1 AND json_search(B, 'one', 1) IS NOT NULL ;
但是用这种操作会有删除后出现{},这种情况,现在我还找不到具体办法去除,只能拿出来后处理下数据重新插入。希望有知道的大佬告知一下,谢谢各位大佬。
更新json里面的数组数据的话,可以用这个sql来操作;
UPDATE A
SET B = JSON_ARRAY_APPEND(B,'$.C.tag', CAST('{"id":"4"}' AS JSON) )
WHERE B = 1;
json的格式是:
{"C": {"tag": [{"id": "1"}, {"id": "4"}]}}
在sql里面添加CAST(‘value’ AS JSON)可以去除字符串的转义问题,
使用 CAST(... AS JSON)
or 强制转换为正确的类型JSON_OBJECT()