You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL:如何在单条UPDATE语句中多次更新同一单元格?

解决MySQL同一SKU库存累加更新问题

原语句的问题在于,MySQL执行多表更新时,对目标表的同一行只会应用一次匹配的更新操作,不会自动累加多行的数值。所以需要先把同SKU的到货数量汇总,再进行更新。

修改后的语句如下:

UPDATE items
JOIN (
    SELECT column_0 AS sku, SUM(column_1) AS total_qty
    FROM (VALUES ROW('sku1', 1), ROW('sku1', 2)) newavail
    GROUP BY column_0
) aggregated_newavail ON items.sku = aggregated_newavail.sku
SET items.available = items.available + aggregated_newavail.total_qty;

关键说明:

  • 先通过子查询aggregated_newavail对新到货的SKU分组,用SUM()计算每个SKU的总到货量
  • 再将汇总后的数据与items表关联,确保每个SKU只执行一次更新,直接把总到货量累加到现有库存中

这样就能实现同一SKU多箱到货的数量一次性累加,sku1的库存会正确增加3。

内容的提问来源于stack exchange,提问作者Sergey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:28:09