Dav*_*542 2 mysql json mysql-json
JSONmysql 中是否有一个函数会忽略尝试添加元素(如果元素已经存在)?例如:
update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;
update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;
Run Code Online (Sandbox Code Playgroud)
现在我的数组看起来像:
["apple", "orange", "orange", "orange", "orange"]
Run Code Online (Sandbox Code Playgroud)
但我希望它像一组一样工作,并且只是:
["apple", "orange"]
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我不这么认为。您可以测试该值是否已经在WHERE子句中的 JSON 中。
update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', '"orange"'))
where id=2
AND NOT JSON_CONTAINS(new, '"orange"')
Run Code Online (Sandbox Code Playgroud)
如果您正在更新多个列并且需要IF()它只影响这一列,如果该值已经存在,您可以使用它保持不变。
update waitinglist SET
new = IF(JSON_CONTAINS(new, '"orange"'), new, JSON_ARRAY_APPEND(new, '$', '"orange"'))
where id=2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1519 次 |
| 最近记录: |