我编写了一个脚本来导入我客户的产品库存的CSV。问题是,他们用来跟踪库存的软件中存在一个bug,该软件将复制具有不同库存价值的产品。
因此,当我导入CSV时,他们发送给我的是具有不同库存的相同产品的重复行。示例:
id | product | cases | unit
--------------------------------
1 | MF003 | 3 | 7
2 | MF004 | 5 | 6
3 | MF005 | 1 | 9
4 | MF005 | 7 | 2
5 | MF006 | 2 | 1MF005产品有两行。我需要的是:
id | product | cases | unit
--------------------------------
1 | MF003 | 3 | 7
2 | MF004 | 5 | 6
3 | MF005 | 8 | 11
5 | MF006 | 2 | 1您会注意到,MF005现在是一行,大小写和单位都正确地加在一起了。
我认为这里更好的方法是使用SELECT查询,而不是预先通过INSERT处理它,但是如果INSERTing有更聪明的方法来实现这一点,我当然愿意接受。
发布于 2015-07-15 11:53:48
您可以一次插入和更新:
CREATE TABLE importdata(
id INT,
product VARCHAR(200) DEFAULT "" PRIMARY KEY,
cases INT,
unit INT
);
INSERT INTO importdata(id,product,cases,unit) VALUES (3,"MF005",1,9) ON
DUPLICATE KEY UPDATE cases=cases+1, unit=unit+9;结果如下:
3 | MF005 | 1 | 9执行第二个插入:
INSERT INTO importdata(id,product,cases,unit) VALUES (4,"MF005",7,2) ON
DUPLICATE KEY UPDATE cases=cases+7, unit=unit+2;结果如下:
3 | MF005 | 8 | 11https://stackoverflow.com/questions/31421084
复制相似问题