使用 select 进行重复密钥更新

问题描述 投票:0回答:1

我已经浏览了几篇文章,但无法找到确切的解决方案。这就是我想要的 -

Table1 - column1, column2, column3, amount as column4
Table2 - column1, column2, column3, amount as column4

我使用下面的代码,它对于插入工作正常,但对于更新,它不会更新金额列

下面是代码

INSERT INTO table2 (column1,column2, column3, amount)
SELECT column1, column2, column3, sum(amount) 
FROM table1 
where column5 != '' and column5 != 'null' and column7 = 'good' 
group by column1
ON DUPLICATE KEY UPDATE amount=SELECT sum(amount) FROM table1 where column5 != '' and column5 != 'null' and column7 = 'good' group by column1;

我知道错误是针对更新部分的,因为当我制作

ON DUPLICATE KEY UPDATE amount=0
时,它可以工作并且所有行都更新为 0

我在更新部分做错了什么。

感谢您提前提供的帮助。

我想要更新查询部分才能工作。

mysqli duplicates insert append key
1个回答
0
投票

()
放在子查询周围。如下:

ON DUPLICATE KEY UPDATE amount = (SELECT sum(amount) FROM table1 where column5 != '' and column5 != 'null' and column7 = 'good' group by column1);
© www.soinside.com 2019 - 2024. All rights reserved.