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

iq3niunx  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(678)

有什么问题吗 JSON mysql中的函数,如果该元素已经存在,将忽略添加该元素的尝试?例如:

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"]

有办法吗?

dhxwm5r4

dhxwm5r41#

我不这么认为。您可以测试值是否已经在 WHERE 条款。

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

相关问题