Heim >Datenbank >MySQL-Tutorial >MySQL IN-Operator und Nullwerte: Warum werden Zeilen mit Nullfehlern ausgeschlossen?
MySQL IN-Operator und Nullwerte
In MySQL wird der IN-Operator verwendet, um zu überprüfen, ob ein bestimmter Wert mit einem beliebigen Wert innerhalb eines angegebenen Werts übereinstimmt Liste. Bei Verwendung des IN-Operators mit Nullwerten kann es jedoch zu unerwartetem Verhalten kommen.
Warum NULL-Werte ausgeschlossen werden
Der MySQL IN-Operator gibt ein boolesches Ergebnis zurück (TRUE oder FALSCH). Beim Vergleich eines Nicht-Null-Werts mit Null ist das Ergebnis immer FALSE. Wenn Sie IN verwenden, um zu prüfen, ob ein Wert keinem Wert in einer Liste entspricht, der Null enthält, werden daher alle Zeilen mit Nullwerten vom Ergebnis ausgeschlossen.
Behebung des Problems
Um Nullwerte in das Ergebnis einzuschließen, können die folgenden Optionen verwendet werden:
Error = COALESCE(Error, '') NOT IN ('Timeout','Connection Error');
Error IS NULL OR Error NOT IN ('Timeout','Connection Error');
CASE WHEN Error IS NULL THEN 1 ELSE Error NOT IN ('Timeout','Connection Error') THEN 1 END = 1
SELECT t1.* FROM Table1 t1 LEFT JOIN ( SELECT Error FROM ErrorTable WHERE Error IN ('Timeout') ) t2 ON t1.Error = t2.Error;
Fazit
Bei der Verwendung des IN-Operators mit Nullwerten ist dies wichtig um zu verstehen, dass der Operator null als Sonderwert behandelt. Um Nullwerte in das Ergebnis einzubeziehen, müssen zusätzliche Bedingungen oder Techniken, wie die oben genannten, eingesetzt werden.
Das obige ist der detaillierte Inhalt vonMySQL IN-Operator und Nullwerte: Warum werden Zeilen mit Nullfehlern ausgeschlossen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!