gpt4 book ai didi

mysql - 如果mysql json字段不存在则追加

转载 作者:行者123 更新时间:2023-11-29 09:56:53 25 4
gpt4 key购买 nike

mysql 中是否有一个 JSON 函数会忽略尝试添加元素(如果该元素已存在)?例如:

update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;

update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;

现在我的数组看起来像:

["apple", "orange", "orange", "orange", "orange"]

但我希望它像一个集合一样工作,并且只是:

["apple", "orange"]

有办法做到这一点吗?

最佳答案

我不这么认为。您可以在 WHERE 子句中测试该值是否已存在于 JSON 中。

update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', '"orange"'))
where id=2
AND NOT JSON_CONTAINS(new, '"orange"')

如果您要更新多列并且需要仅影响这一列,则可以使用 IF() 使其保持不变(如果该值已存在)。

update waitinglist SET
new = IF(JSON_CONTAINS(new, '"orange"'), new, JSON_ARRAY_APPEND(new, '$', '"orange"'))
where id=2

关于mysql - 如果mysql json字段不存在则追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53677801/

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