Php Mysql查询:如果使用内部连接或类似连接或其他插入找到,则更新
我有两张桌子: 库存位置:(库存ID、数量、SLNID)Php Mysql查询:如果使用内部连接或类似连接或其他插入找到,则更新,php,mysql,sql,Php,Mysql,Sql,我有两张桌子: 库存位置:(库存ID、数量、SLNID) 库存详细信息:(库存ID、数量、SLNID、类型) 当Type='B'和StockID等于SLNID equal时,我想向db插入一个查询,以更新所有库存位置的数量 如果SLNID不相等 然后将StockID、数量、SLNID从stockdetail插入stocklocation 这可能吗?使用 如果我没有弄错您的问题,如果stocklocations包含stockID行、SLNID行,那么您希望更新数量,如果没有,则插入该行 如果是这种
库存详细信息:(库存ID、数量、SLNID、类型) 当Type='B'和StockID等于SLNID equal时,我想向db插入一个查询,以更新所有库存位置的数量 如果SLNID不相等 然后将StockID、数量、SLNID从stockdetail插入stocklocation 这可能吗?使用
如果我没有弄错您的问题,如果stocklocations包含stockID行、SLNID行,那么您希望更新数量,如果没有,则插入该行 如果是这种情况,那么您可以使用以下方法(假设您将密钥定义为(StockID,SLNID)) 因此,完整查询将如下所示:
INSERT INTO `stocklocations` (`StockID`, `SLNID`, `Quantity`)
VALUES (1, 1, 1)
ON DUPLICATE KEY UPDATE `quantity`=`quantity`+VALUES(`Quantity`);
希望能有所帮助,Liron你能在你的问题和预期结果中添加一些样本数据吗?剂量值(1,1,1)是什么意思?我应该从输入中获取信息吗?如果是,我不想这样做,我想对数据库中的所有数据都这样做。值(1,1,1)表示要插入的值。查看您的评论,我知道主表已经存在,您希望填充stocklocations。如果是这样,我建议更新问题,您可以执行如下示例中的SELECT-INSERT操作:
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`);