MySQL中向cart表JSON字段追加值的查询语句修正求助
修正你的MySQL JSON字段追加语句
你的语句有几个关键问题导致无法正常生效,我帮你逐一修正并解释:
- 错误的语句类型:你用了
SELECT语句,但要修改数据库中的数据,必须使用UPDATE语句 - 错误的字段引用:你使用了变量
@items,但实际上应该直接操作表中的items字段 - JSON格式问题:追加的JSON对象没有用单引号包裹,MySQL要求字符串(包括JSON格式的字符串)必须用单引号界定
正确的更新语句
UPDATE cart SET items = JSON_ARRAY_APPEND(items, '$', '{"item_id": "5"}') WHERE id = 1;
额外优化建议
如果你的items字段初始值可能为NULL,可以用JSON_COALESCE先将其转为空数组,避免追加失败:
UPDATE cart SET items = JSON_ARRAY_APPEND(JSON_COALESCE(items, '[]'), '$', '{"item_id": "5"}') WHERE id = 1;
执行完更新后,你可以用下面的语句验证结果:
SELECT items FROM cart WHERE id = 1;
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

