为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:kylin
【CPU】:
【问题描述】*:我建立了如下数据,字段dijson为jsonarray,我想删除所有数组里的80002,能一次删除吗?
create table t_json (id varchar2(20), idjson varchar2(100) CHECK (idjson IS JSON));
insert into t_json(id,idjson) values('100','[1000,10001,80002]');
insert into t_json(id,idjson) values('101','[2000,80002,20002]');
insert into t_json(id,idjson) values('102','[80002,30001,30002]');
另一个问题:$[*]通配符报错,不知道为什么?下面写法有什么问题吗?
//运行报错:json处理错误
SELECT * FROM t_json WHERE JSON_CONTAINS(idjson, '80002', '$[*]');
//运行成功
SELECT * FROM t_json WHERE JSON_CONTAINS(idjson, '80002', '$[1]');
路径参数不用 $[*] ,直接用 $ 试试