如何编写MYSQL查询将mt_item表指定商户的price值从["1"]更新为["2"]
MySQL更新需求实现方案
正确的更新语句如下:
UPDATE mt_item SET price = '["2"]' WHERE merchant_id = 55 AND price = '["1"]';
原有写法的问题说明
- SELECT查询和UPDATE是独立语句,不能直接拼接执行,SELECT仅用于提前验证筛选结果是否正确
- UPDATE语法错误:UPDATE关键字后需指定要操作的表名,而非字段名
- 字符串标识错误:
["2"]使用了反引号,MySQL中反引号仅用于包裹表名、字段名这类标识符,普通字符串值需要用单引号包裹 - 缺失WHERE筛选条件:你原来的UPDATE语句没加筛选规则,直接执行会更新整张表的price字段,会引发严重的数据错误
操作建议
执行更新前先运行筛选查询,确认匹配的记录数符合预期,避免误改数据:
SELECT price FROM mt_item WHERE price = '["1"]' AND merchant_id = 55;
确认返回的记录都是需要更新的内容后,再执行上面的UPDATE语句即可。
内容的提问来源于stack exchange,提问作者zack0
相关产品推荐
相关产品推荐

