【发布时间】:2010-12-03 09:26:26
【问题描述】:
我昨天问了这个问题:
Insert select with a twist question
现在我有一个问题,如果它是重复行,我希望数据自行更新。
所以我发现我可以这样做:
insert into product_quantity
(groupId, productId, quantity)
select 3, productId, quantity
from product_quantity
ON DUPLICATE KEY UPDATE
product_quantity.quantity = VALUES(product_quantity.quantity);
但我希望通过将数量添加到已经存在的数量来更新数量。
所以我想要这样的东西:
ON DUPLICATE KEY UPDATE
product_quantity.quantity =
VALUES(product_quantity.quantity) + product_quantity.quantity;
如果我得到:
id----groupId----productId----数量 1 ----- 2 ------------2--------------5 2 ----- 3 ------------2--------------5其中 groupId 和 productId 是唯一的。
我执行插入-选择-重复查询:
insert into product_quantity
(groupId, productId, quantity)
select 3, 2, 5
from product_quantity
ON DUPLICATE KEY UPDATE
product_quantity.quantity = VALUES(product_quantity.quantity) + *OLD QUANTITY*;
MySql 应该将第 1 行的数量添加到第 2 行,所以它看起来像这样:
id----groupId----productId----数量 1 ----- 2 ------------2--------------5 2 ----- 3 ------------2--------------10有人知道这是否可行吗?
【问题讨论】:
标签: mysql sql duplicates