2014-07-10 23 views
5

Mysql (node.js) dosyasında eşleşme bulunup bulunmadığını nasıl kontrol edebilirim?node.js mysql sorgusunda, eşleşme bulunup bulunmadığını kontrol edin

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:' 
} 

Veritabanım name = 'abcd' içeriyor. Peki, sorgunun eşleşmediğini nasıl kontrol edebilirim? Söylediğiniz gibi, veritabanı name = 'abcd' ile herhangi bir satır içermediğinden

cevap

7

Sen, sorgu sonucunda boş bir dizi ([]) alıyoruz.

Bunu yaptığınızda: JavaScript [] için true değerlendirir çünkü

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

, sen if girersiniz. Javascript'in true ve false değerlerini nasıl değerlendirdiğini açıklayan this article here'a bir göz atın.

sizin sonuç dizisi boş olup olmadığını kontrol etmek daha iyi bir yol yapmaktır:

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

'(result.length!)' Burada mükemmel iyi çalışacaktır. –

+0

@BenFortune Agreed, çünkü Javascript '0' için' false 'değerini değerlendiriyor. Sadece bu yazı yazma yolunu seviyorum. –

+0

Teşekkürler, Her iki öneri çalışıyor. – Rejaul

İlgili konular