gpt4 book ai didi

mysql - 防止 MySQL 中 JSON 数组重复

转载 作者:行者123 更新时间:2023-11-29 10:16:52 25 4
gpt4 key购买 nike

我在 MySQl 表中有一个 JSON 类型的列。此列存储整数值数组,例如“[1,2,3]”。

我想要的是:当我使用 JSON_ARRAY_INSERT/JSON_ARRAY_APPEND 向该数组插入新值时,如果该值已经存在,则只需忽略它即可。

如何在 MySQL 中执行此操作?也就是说,不检查调用脚本(如 PHP 或 Node.js 等)的重复项。

更新:我更愿意使用内置的 MySQL 机制来实现此目的,因为如果在外部脚本中完成,即使我在存储之前检查重复项,由于竞争条件,也有很小的机会发生重复项数据。

谢谢!

最佳答案

在不知道确切的表结构的情况下,很难给出准确的答案,但以下查询演示了如何使用变量完成它。您只需要根据您的列进行调整即可。

set @j='["1","2","3"]';
set @v = "4";
select ifnull(json_search(@j, 'one', @v), @j:=json_array_append(@j, '$', @v));
set @v = "1";
select ifnull(json_search(@j, 'one', @v), @j:=json_array_append(@j, '$', @v));
select @j;

输出:

["1", "2", "3", "4"]

关于mysql - 防止 MySQL 中 JSON 数组重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50012826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com