set @a = '["1","2","3"]';
set @b = '["4","2","3"]';
我有两个 json 数组。现在我想从@a 中删除@b 中的所有元素(如果存在)。否则无视。
预期结果:
["1"]
我们可以遍历@b 并从@a 中一一删除。
但我正在寻找最佳解决方案。我期待像 JSON_REMOVE_ALL(); 这样的东西。
请补充你的想法...
下面使用 JSON 函数来提取@a
不在@b
.
@a
成表之前@a
存在@b
。架构 (MySQL v8.0)
查询#1
set @a = cast('["1","2","3"]' as json);
没有要显示的结果。
查询#2
set @b = cast('["4","2","3"]' as json);
没有要显示的结果。
查询 #3
SELECT
JSON_ARRAYAGG(num) result
FROM
JSON_TABLE(@a,"$[*]" COLUMNS(num json PATH "$" )) ta
WHERE JSON_CONTAINS(@b,num,'$')=0;
结果 |
---|
[“1”] |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句