Javascript,在没有值时使用mysql更新

Javascript,在没有值时使用mysql更新,javascript,mysql,Javascript,Mysql,未设置时,我将更新数据库中的值 我有以下代码: items.forEach(function(item,i,arr){ mysqlConnection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \''

未设置时,我将更新数据库中的值

我有以下代码:

items.forEach(function(item,i,arr){
    mysqlConnection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, row, fields) {});
});
当我放入多于2个具有item.assetid的“Items”(例如:item 1具有=123123,item 2具有=987987)时,所有两个没有任何项的项都会获得相同的assetid值,例如123123或987987

我怎么能做到,他给每件东西一个资产


在此之前,“AssetID”列中没有任何内容

我猜您的
WHERE
子句匹配的行太多了。不清楚您使用的是什么库,但是如果您使用的是
node mysql
,您可以在回调函数中输出更新的行数:

connection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, result) {
  if (err) throw err;

  console.log('changed ' + result.changedRows + ' rows');
})

查看您的
项目
数组-该数组中的每个项目的
资产必须相同。问题可能在此行的上游。@item数组中的pherris是两个具有两个不同AssetID的项。如果我做了“console.log(item.assetid)”,我会变回两个不同的ID。但在数据库中,他将1个assetid设置为2个项……它说:“更改了2行,而不是更改了0行”。我如何使他更改1而不是1?这就是问题所在,您没有在
WHERE
子句中匹配要更新的正确行。可能需要将列的ID添加到update语句中。但是如何添加呢?我有几个列:ID、ItemName、Assetid-ItemName可以相同,每个项的Assetid必须更新。资产是不同的,必须是不同的。AssetID在此foreach中更新。ID为1并自动计数当您正在执行更新时,您必须在创建
数组时选择要更改的行。在创建
数组时,需要在数组中包含
ID
列的值,然后在
UPDATE
where中可以变成'where ID=\''item.ID\''。我有它!谢谢你的代码。这对我帮助很大!:)我添加了“按资产说明限额1的订单”。有效:)