2014-07-10 79 views
5

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

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'。那么,如何检查查询是否匹配?

回答

7

您会收到一个空数组([])作为查询的结果,因为如你所说,你数据库不包含与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); 
+1

'如果(result.length!)'会完全正常工作在这里。 –

+0

@BenFortune同意,因为JavaScript评估'0'的'false'。只是我喜欢编写代码的冗长方式。 –

+0

谢谢,这两个建议都在起作用。 – Rejaul