【发布时间】:2018-04-09 21:11:12
【问题描述】:
我在一个名为 stock_quantity 的表中有一个列。每条记录都有一个特定的数字,表示当前库存的数量。我正在使用节点查询器提示用户输入要添加到现有 stock_quantity 记录的金额。我想更新 stock_quantity 的特定记录,而不必查询数据库来获取现有的库存数量。有可能还是我必须做单独的查询来获取特定的现有数量,然后在更新查询之前进行数学运算?
如果我使用以下 sn-p,我可以按特定数量(例如 1)更新记录:
connection.query("UPDATE product SET stock_quantity = stock_quantity + 1
WHERE ?",
[
{
item_id: itemID
}
],
function(err, result) {
if(err) {
console.log(err);
}
console.log("Stock Quantity of item " + itemID + " increased by " +
addQty + " units.");
}
);
但是,如果我尝试将 stock_quantity 的记录更新为可变数量,则会出现错误。我尝试了以下方法:
var itemID = parseInt(answer.item_id);
var addQty = parseInt(answer.add_qty);
if(typeof addQty === "number") {
connection.query("UPDATE product SET stock_quantity = stock_quantity +
addQTY WHERE ?",
[
{
item_id: itemID
}
],
function(err, result) {
if(err) {
console.log(err);
}
console.log(result);
console.log("Stock Quantity of item " + itemID + " increased by " +
addQty + " units.");
}
);
}
我也试过这个:
var itemID = parseInt(answer.item_id);
var addQty = parseInt(answer.add_qty);
if(typeof addQty === "number") {
connection.query("UPDATE product SET ? WHERE ?",
[
{
stock_quantity: stock_quantity + addQty
},
{
item_id: itemID
}
],
function(err, result) {
if(err) {
console.log(err);
}
console.log(result);
console.log("Stock Quantity of item " + itemID + " increased by " +
addQty + " units.");
}
);
}
最后,我尝试了这个:
var itemID = parseInt(answer.item_id);
var addQty = parseInt(answer.add_qty);
if(typeof addQty === "number") {
connection.query("UPDATE product SET stock_quantity = stock_quantity + ?
WHERE ?",
[
{
addQty
},
{
item_id: itemID
}
],
function(err, result) {
if(err) {
console.log(err);
}
console.log(result);
console.log("Stock Quantity of item " + itemID + " increased by " +
addQty + " units.");
}
);
}
【问题讨论】:
-
你得到的错误是什么?
标签: javascript mysql node.js