2016-05-18 7 views
2

Ich bin ziemlich neu zu nodejs in gernal und ich sehe ein Problem mit mysql wählt. So können sagen, dass ich eine Reihe von ids haben, und ich möchte, dass sie von meiner MySQL-Datenbank wählen wie:MySQL Wählen Sie IN mit NodeJs erkennen leere Felder

Con.query('SELECT * FROM Table WHERE Id IN (1,2,3,4)' , function (err, 
results, fields) { results contains: 1,2,3 because 4 dont exists in DB } 

So würde ich die Daten für die Zeilen mit ID 1,2,3 empfangen, aber nicht für ID 4 weil es nicht existiert. Ich frage mich, wie ich erkennen kann, dass ID 4 nicht existiert.

Gibt es einen Weg, um alle Ids abzurufen i für in der Abfrage-Funktion gefragt oder Art einer Option, die ich aktivieren kann NULL für die angegebene ID zu erhalten, wenn es vorhanden ist, wie nicht:

ID 1: Data 
ID 2: Data 
ID 3: Data 
ID 4: null - because dont exists 

Wenn Es gibt keine Möglichkeit, dies mit IN-Anweisung zu lösen, kann ich einfach 4 einzelne Selects mit expliziter ID (weil ich 0 erhalten, wenn die Daten nicht existiert) oder wird es MySQL überlasten, wenn ich wie 1000 Select in 1 Minute?

+0

Willkommen bei StackOverflow! In der Zukunft müssen Sie nicht erklären, dass Sie etwas neu sind, stellen Sie einfach die Frage. Es gibt auch keine Notwendigkeit, Menschen in Ihrer Frage zu danken. Erwägen Sie, Ihre Frage so zu formulieren, dass sie für andere gelten kann, zum Beispiel: Verwenden Sie nicht das Wort "I", außer wenn Sie erklären, was Sie versucht haben, um das Problem selbst zu lösen. Bitte beachten Sie auch das Korrekturlesen für die Groß-/Kleinschreibung. – Charlie

Antwort

0

Sie müssen es über eine Schleife überprüfen, wenn Sie ID in Array setzen;

var ids = [1,2,3,4] 
Con.query('SELECT * FROM Table WHERE Id IN (1,2,3,4)' , function (err, results, fields) { 
for(var i = 0;i<ids.length;i++){ 
if(ids.indexOf(fields[i]['id'])>-1){ 
console.log(" found ID = "+ids[i]) 
}else{ 
console.log(" ID NOT FOUND = "+ids[i]) 
} 
} 

});

+0

Nevermind ... ich habe das nur gemischt. mit Variable. Auf die falsche Art und Weise konnte ich nicht auf das oben definierte Array zugreifen ... Danke! – TK92

+0

Der Bereich der IDs befindet sich in Ihrer asynchronen Funktion, aber der Bereich der Felder befindet sich nicht außerhalb des Async –