javascript - 在 node.js mysql 查询中,检查是否没有找到匹配项

标签 javascript mysql node.js node-mysql

如何检查 mysql (node.js) 中是否找不到匹配项?

mysql.query("select * from table1 where name = 'abcd'", function(error, result, field) {
    if(error) {
        exist(error); //No error
    } else if(result) {
        console.log(result);  //displays '[]'
        exist(null, result);
    } else {
        exist(null, null); //It is never execute
    }
});
function exist(error, result) {
    if(result)
        console.log("Test:"+result); //Executed and displays 'Test:'
}

我的数据库不包含 name = 'abcd'。那么,如何检查查询是否不匹配?

最佳答案

您的查询结果是一个空数组 ([]),因为正如您所说,您的数据库不包含任何 name = 'abcd '.

当你这样做时:

if (result) {
  if (result)
    console.log("Test:" + result);

,您将输入 if,因为 JavaScript 为 [] 评估 true。看看this article here ,这解释了 JavaScript 如何评估 truefalse 值。

检查结果数组是否为空的更好方法是:

if (result.length > 0) {
  if (result)
    console.log("Test:" + result);

关于javascript - 在 node.js mysql 查询中,检查是否没有找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24675125/

相关文章:

javascript - Angular 6 - 在将 ngIf 设置为 true 时等待元素加载到 *ngIf 中

PHP 到 MySQL 数据库的连接

javascript - 如何允许 Ember.js 从 html 内容字段加载内容?

php - MySQL 将随机行从一个表移动到另一个表

mysql - 查询需要很长时间才能在 AWS RDS 中执行

javascript - 如何处理 MongoDB 键名中的点?

javascript - 如何在构建之前使用 npm 删除文件夹

node.js - 尝试运行基于 Electron 的应用程序时遇到问题?

javascript - 单选按钮值未传递给变量并停止提交

javascript - 具有双轴断点和拖动点的 Highcharts