2014-07-10 111 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