从 Node.js 更新 MySQL - 如何判断零行是否受到影响?

Tim*_*thy 5 javascript mysql node.js

我正在从 Node.js 服务器代码的上下文中查询 mySQL 数据库。总的来说,一切进展顺利。但是,我无法找到一种方法来判断 UPDATE 语句是否不更新任何行。例如,如果我有如下代码:

connection.query("UPDATE table SET columnA = valA WHERE columnB = valB;",
    function(err, rows, fields) {

   ..some code..
}
Run Code Online (Sandbox Code Playgroud)

据我所知,所有回调(错误、行、字段)都不会向我提供任何信息,通知我零行受到影响。这对我来说很重要。我该如何解决这个问题?谢谢!

小智 8

我假设你正在使用node-mysql。更改的行数是result.changedRows可变的。

尝试:

connection.query('UPDATE table SET ...', function (err, result) {
  if (err) throw err;
  console.log('changed ' + result.changedRows + ' rows');
});
Run Code Online (Sandbox Code Playgroud)

您还可以获得result.affectedRows.

更多信息在文档中。