在node.js中的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:' } 

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

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

当你这样做时:

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

,您将inputif ,因为Javascript对[]计算结果为true 。 看看这篇文章 ,这解释了如何评估true值和false值。

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

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