我想用 if-else 条件更新我的原始数据。这是我的sql代码;
update posts
set like =
if(json_contains(like,2,'$'),
json_remove(like,replace(json_search(like,'one',2),'"','')),
json_array_append(like,'$',2)
)
where id = 3
我的桌子;
ID | 喜欢 |
---|---|
2 | [] |
3 | [2] |
这段 sql 代码之后id= 3
应该是这样的id = 2
。
综上,:如果json包含,则从json中移除;如果 json 不包含,则将数据推送到数组
问题是它
JSON_SEARCH()
不适用于整数。您必须使用字符串。在 MySQL 中使用 JSON 会使一切变得更加困难。我建议您将喜欢的内容存储在第二张表中。然后只需
INSERT
一行添加一个喜欢,或DELETE
一行删除一个喜欢。