Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql查询:如果使用内部连接或类似连接或其他插入找到,则更新_Php_Mysql_Sql - Fatal编程技术网

Php Mysql查询:如果使用内部连接或类似连接或其他插入找到,则更新

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)
库存详细信息:(库存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`);