MySQL合并来自同一表的记录

时间:2019-04-15 02:10:17

标签: mysql sql

我正在尝试执行sql命令来更新行,并将行与匹配的数据组合在一起。

作为我要尝试的示例,我有一个下表,如下所示。我想将所有具有userEmail = user@user.com的记录更新为admin@example.com。如果我尝试简单更新,则会遇到重复的键错误。

我可以通过添加某种计数器作为代理键来解决此问题,但如果可能的话,我宁愿避免使用该选项。

此外,如果可能的话,我想结合第二条记录的数量。

我可以使用哪种操作?

pandas

1 个答案:

答案 0 :(得分:2)

我建议两个步骤:

insert into original (userEmail, productId, usItemId, quantity, timestamp)
    select 'admin@example.com', productId, usItemId, quantity, timestamp
    from original o
    where o.userEmail = 'user@user.com'
    on duplicate key update quantity = values(quantity) + quantity;

delete from original
    where o.userEmail = 'user@user.com';