In SQL werden alle logischen Operatoren als
TRUE
, FALSE
oder
NULL
(UNKNOWN
)
ausgewertet. In MySQL ist dies als 1 (TRUE
),
0 (FALSE
) und NULL
implementiert. Dies ist größtenteils auf den verschiedenen
SQL-Datenbankservern identisch, auch wenn einige Server einen
beliebigen Nichtnullwert für TRUE
zurückgeben.
Logisches NOT (NICHT). Wird zu 1
, wenn
der Operand 0
ist, und zu
0
, wenn der Operand nicht null ist.
NOT NULL
gibt NULL
zurück.
mysql>SELECT NOT 10;
-> 0 mysql>SELECT NOT 0;
-> 1 mysql>SELECT NOT NULL;
-> NULL mysql>SELECT ! (1+1);
-> 0 mysql>SELECT ! 1+1;
-> 1
Das letzte Beispiel erzeugt 1
, weil der
Ausdruck auf die gleiche Weise ausgewertet wird wie
(!1)+1
.
Logisches AND (UND). Gibt 1
zurück, wenn
alle Operanden weder null noch NULL
sind;
wenn ein oder mehr Operanden 0
sind, wird
0
zurückgegeben, andernfalls
NULL
.
mysql>SELECT 1 && 1;
-> 1 mysql>SELECT 1 && 0;
-> 0 mysql>SELECT 1 && NULL;
-> NULL mysql>SELECT 0 && NULL;
-> 0 mysql>SELECT NULL && 0;
-> 0
Logisches OR (ODER). Wenn beide Operanten nicht
NULL
sind, ist das Ergebnis
1
, sofern ein beliebiger Operand nicht
null ist, andernfalls 0
. Bei einem
NULL
-Operanden ist das Ergebnis
1
, wenn der andere Operand nicht null
ist, andernfalls ist es NULL
. Sind beide
Operanden NULL
, dann ist das Ergebnis
NULL
.
mysql>SELECT 1 || 1;
-> 1 mysql>SELECT 1 || 0;
-> 1 mysql>SELECT 0 || 0;
-> 0 mysql>SELECT 0 || NULL;
-> NULL mysql>SELECT 1 || NULL;
-> 1
Logisches XOR (exklusives ODER). Gibt
NULL
zurück, wenn ein Operand
NULL
ist. Bei
Nicht-NULL
-Operanden wird
1
zurückgegeben, wenn eine ungerade
Anzahl von Operanden nicht null ist, andernfalls wird
0
zurückgegeben.
mysql>SELECT 1 XOR 1;
-> 0 mysql>SELECT 1 XOR 0;
-> 1 mysql>SELECT 1 XOR NULL;
-> NULL mysql>SELECT 1 XOR 1 XOR 1;
-> 1
a XOR b
ist mathematisch identisch mit
(a AND (NOT b)) OR ((NOT a) and b)
.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.