OR
Grundlagen
Wozu dient OR?
Der Operator OR verknüpft mehrere Bedingungen in der WHERE-Klausel. Eine Zeile wird zurückgegeben, wenn mindestens eine der mit OR verbundenen Bedingungen wahr ist.
Syntax
SELECT spalten FROM tabelle WHERE bedingung1 OR bedingung2;
Beispiel
Alle Kunden aus Berlin oder Hamburg:
SELECT Name, Stadt FROM Kunden WHERE Stadt = 'Berlin' OR Stadt = 'Hamburg';
| Name | Stadt |
|---|---|
| Müller GmbH | Berlin |
| Schmidt AG | Hamburg |
Mehrere OR-Bedingungen
Bei vielen Werten für dieselbe Spalte wird OR schnell unübersichtlich:
WHERE Stadt = 'Berlin' OR Stadt = 'Hamburg' OR Stadt = 'Paris'
Kürzer geht das mit IN (siehe IN):
WHERE Stadt IN ('Berlin', 'Hamburg', 'Paris')
OR und AND kombinieren
AND wird vor OR ausgewertet. Die folgenden zwei Abfragen liefern unterschiedliche Ergebnisse:
-- ohne Klammern: AND bindet stärker WHERE Land = 'DE' AND Stadt = 'Berlin' OR Stadt = 'Paris' -- mit Klammern: erst OR auswerten WHERE Land = 'DE' AND (Stadt = 'Berlin' OR Stadt = 'Paris')
Stolperfalle
Eine sehr häufige Verwechslung: „Kunden aus DE oder FR“ heißt Land = 'DE' OR Land = 'FR', nicht Land = 'DE' AND Land = 'FR'. Mit AND würdest du Zeilen suchen, in denen das Land gleichzeitig DE und FR ist – das gibt es nie, das Ergebnis wäre leer.
Welche Bedingung liefert Kunden aus Deutschland oder Frankreich?