Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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
Javascript 使用总和或减数更新重复密钥时插入_Javascript_Mysql_Node.js_Sql Update_Sql Insert - Fatal编程技术网

Javascript 使用总和或减数更新重复密钥时插入

Javascript 使用总和或减数更新重复密钥时插入,javascript,mysql,node.js,sql-update,sql-insert,Javascript,Mysql,Node.js,Sql Update,Sql Insert,我一直在努力寻找答案,但找不到答案 我有这张桌子 我使用这个查询来更新它(这个查询是必须的,因为我有来自前端的动态输入,所以我可以更新多行) 问题是,如果我运行上面的查询。该表应该更新,但我希望添加totalQuantity列,这样test1的值应该是46,test2的值应该是73。我不知道该怎么办 名称列是唯一的,并且是一个键 我正在用nodejs进行查询 let query4 = `INSERT INTO main_inventory(name,sellingPrice,purchas

我一直在努力寻找答案,但找不到答案

我有这张桌子

我使用这个查询来更新它(这个查询是必须的,因为我有来自前端的动态输入,所以我可以更新多行)

问题是,如果我运行上面的查询。该表应该更新,但我希望添加totalQuantity列,这样test1的值应该是46,test2的值应该是73。我不知道该怎么办

名称列是唯一的,并且是一个键

我正在用nodejs进行查询

  let query4 = `INSERT INTO main_inventory(name,sellingPrice,purchasePrice,averagePrice,totalQuantity) VALUES`
  for(let x=0;x<main_items.length;x++){
            if(x+1 == main_items.length){                
                query4 = query4+`("${main_items[x].item}",${main_items[x].sellingPrice},${main_items[x].purchasePrice},${main_items[x].averagePrice},${main_items[x].quantity})
                 ON DUPLICATE KEY UPDATE name = VALUES(name),sellingPrice = VALUES(sellingPrice),purchasePrice = VALUES(purchasePrice),averagePrice = VALUES(averagePrice),totalQuantity = VALUES(totalQuantity)`
            }else{                
                query4 = query4+`("${main_items[x].item}",${main_items[x].sellingPrice},${main_items[x].purchasePrice},${main_items[x].averagePrice},${main_items[x].quantity}),`

            }
        }
let query4=`插入主库存(名称、销售价格、采购价格、平均价格、总数量)值`

对于(设x=0;x,您可以引用在查询的
UPDATE
部分插入的列的当前值,如:

INSERT INTO main_inventory(name, sellingPrice, purchasePrice, averagePrice, totalQuantity) 
VALUES ('test1', 20, 5, 27.5, 23), ('test2', 20, 5, 27.5, 50)
ON DUPLICATE KEY UPDATE 
    name = VALUES(name),
    sellingPrice  = VALUES(sellingPrice),
    purchasePrice = VALUES(purchasePrice),
    averagePrice  = VALUES(averagePrice),
    totalQuantity = totalQuantity + VALUES(totalQuantity)  -- add to the original value
INSERT INTO main_inventory(name, sellingPrice, purchasePrice, averagePrice, totalQuantity) 
VALUES ('test1', 20, 5, 27.5, 23), ('test2', 20, 5, 27.5, 50)
ON DUPLICATE KEY UPDATE 
    name = VALUES(name),
    sellingPrice  = VALUES(sellingPrice),
    purchasePrice = VALUES(purchasePrice),
    averagePrice  = VALUES(averagePrice),
    totalQuantity = totalQuantity + VALUES(totalQuantity)  -- add to the original value