2014-07-10 13 views
5

Jak mogę sprawdzić, czy nie znaleziono pasujących w mysql (node.js)?W zapytaniu mysql node.js sprawdź, czy pasujące znalezione

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

Moja baza danych nie zawiera nazwy = "abcd". Jak więc sprawdzić, czy zapytanie nie pasuje?

Odpowiedz

7

Wysłaliśmy pustą tablicę ([]) w wyniku zapytania, bo jak pan powiedział, baza danych nie zawiera wiersz z name = 'abcd'.

Kiedy zrobić:

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

, będziesz wprowadzić if, ponieważ Javascript ocenia true dla []. Spójrz na this article here, który wyjaśnia, jak JavaScript ocenia wartości true i false.

Lepszym sposobem sprawdzenia, czy tablica wynikowa jest pusta to zrobić:

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

'if (result.length!)' Zadziała perfekcyjnie tutaj. –

+0

@BenFortune Uzgodnione, ponieważ JavaScript ocenia 'false' dla' 0'. Po prostu lubię ten gęsty sposób pisania kodu. –

+0

Dzięki, obie sugestie działają. – Rejaul

Powiązane problemy