mysql 上的 JSON 函数

马诺南丹SK
set @a = '["1","2","3"]';
set @b = '["4","2","3"]';

我有两个 json 数组。现在我想从@a 中删除@b 中的所有元素(如果存在)。否则无视。

预期结果:

["1"]

我们可以遍历@b 并从@a 中一一删除。

但我正在寻找最佳解决方案。我期待像 JSON_REMOVE_ALL(); 这样的东西。

请补充你的想法...

戈登

下面使用 JSON 函数来提取@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”]

在 DB Fiddle 上查看

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章