【问题标题】:How to remove array elements from another array in mysql using JSON functions?如何使用 JSON 函数从 mysql 中的另一个数组中删除数组元素?
【发布时间】:2021-09-14 21:54:21
【问题描述】:
set @a = '["1","2","3"]';
set @b = '["4","2","3"]';

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

预期结果:

["1"]

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

但我正在寻找最佳解决方案。 我期待类似 JSON_REMOVE_ALL();

请添加您的想法...

【问题讨论】:

    标签: mysql arrays


    【解决方案1】:

    以下使用 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;
    
    result
    ["1"]

    View on DB Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      相关资源
      最近更新 更多