如何检查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'。那么,我该如何检查查询是否不匹配?
答案 0 :(得分:14)
由于您的查询,您收到一个空数组([]
),因为正如您所说,您的数据库不包含name = 'abcd'
的任何行。< / p>
当你这样做时:
if (result) {
if (result)
console.log("Test:" + result);
,您将输入if
,因为Javascript会为true
评估[]
。请查看this article here,其中说明了Javascript如何评估true
和false
值。
检查结果数组是否为空的更好方法是:
if (result.length > 0) {
if (result)
console.log("Test:" + result);