mysql8.0 json操作 JSON_ARRAY_APPEND JSON_REMOVE

本文介绍了如何在MySQL8.0中使用JSON_REMOVE删除JSON对象中的数组数据,以及使用JSON_ARRAY_APPEND更新JSON数组。在删除操作中,提到了遇到删除后出现空对象的问题,并给出了解决方案,同时展示了如何使用JSON_SEARCH和JSON_EXTRACT进行查询。
摘要由CSDN通过智能技术生成

删除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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值