Hallo,
XOR liefert doch TRUE, wenn eines der beiden Argumente TRUE ist, oder nicht?
Wenn ich also ein Anfrage mit "WHERE attr=10 XOR attr=11" formuliere, und attr ist 10 oder 11, dann wird die Zeile mit in das Ergebnis aufgenommen.
Wieso liefert XOR kein TRUE wenn ich mit IS NULL auf ein Attribut prüfe?
z.B. folgende Tabelle gegeben:
Folgende Anfrage liefert kein Resultat:
Wenn ich aber das letzte XOR durch ein OR ersetze, dann wird die Zeile, die ich vorher auch schon erwartet hätte, zurückgegeben. Woran liegt das?
XOR liefert doch TRUE, wenn eines der beiden Argumente TRUE ist, oder nicht?
Wenn ich also ein Anfrage mit "WHERE attr=10 XOR attr=11" formuliere, und attr ist 10 oder 11, dann wird die Zeile mit in das Ergebnis aufgenommen.
Wieso liefert XOR kein TRUE wenn ich mit IS NULL auf ein Attribut prüfe?
z.B. folgende Tabelle gegeben:
Code:
id gegend_id weg_id 1 9 NULL
Code:
SELECT * FROM `testxor` WHERE (gegend_id=9 XOR gegend_id IS NULL) AND (weg_id=7777 XOR weg_id IS NULL)
Kommentar