Mysql查询:如果使用内部连接或类似物找到更新,或者插入

时间:2015-12-19 21:16:15

标签: php mysql sql

我有两张桌子:

stocklocations :( StockID,Quantity,SLNID)
StockDetail :( StockID,Quantity,SLNID,Type)

我想向db插入一个查询,以便在Type =' B'时更新所有stocklocations的数量。和StockID相等,SLNID相等 如果SLNID不相等 然后将StockID,Quantity,SLNID从stockdetail插入stocklocation 这有可能吗?

2 个答案:

答案 0 :(得分:0)

使用INSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO stocklocations (Quantity, SLNID) VALUES( '$quantity', SLNID) where TYPE='B' and StockId = SLNID and  ON DUPLICATE KEY  UPDATE Quantity=VALUES(Quantity+'$quantity');

答案 1 :(得分:0)

如果我的问题是正确的,如果stocklocations包含行stockID,SLNID,那么您想要更新数量,如果没有包含行。

如果是这种情况,那么您可以使用以下内容(假设您将密钥定义为(StockID,SLNID))

ON DUPLICATE KEY UPDATE `quantity`=`quantity`+1;

因此完整查询将如下所示:

INSERT INTO `stocklocations` (`StockID`, `SLNID`, `Quantity`) 
VALUES (1, 1, 1)
ON DUPLICATE KEY UPDATE `quantity`=`quantity`+VALUES(`Quantity`);

希望它会有所帮助,
Liron