在node.js mysql查询中,检查是否找不到匹配项

时间:2014-07-10 11:16:17

标签: 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'。那么,我该如何检查查询是否不匹配?

1 个答案:

答案 0 :(得分:14)

由于您的查询,您收到一个空数组([]),因为正如您所说,您的数据库不包含name = 'abcd' 的任何行。< / p>

当你这样做时:

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);