En SQL, todos los operadores lógicos se evalúan a
TRUE, FALSE, o
NULL (UNKNOWN). En MySQL,
se implementan como 1 (TRUE), 0
(FALSE), y NULL. La
mayoría de esto es común en diferentes servidores de bases de
datos SQL aunque algunos servidores pueden retornar cualquier
valor distinto a cero para TRUE.
NOT, !
NOT lógica. Se evalúa a 1 si el
operando es 0, a 0 si
el operando es diferente a cero, y NOT
NULL retorna NULL.
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
El último ejemplo produce 1 porque la
expresión se evalúa igual que (!1)+1.
AND, &&
AND lógica. Se evalúa a 1 si todos los
operandos son distintos a cero y no NULL,
a 0 si uno o más operandos son 0, de
otro modo retorna 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
OR, ||
OR lógica. Cuando ambos ooperandos son no
NULL, el resultado es 1 si algún
operando es diferente a cero, y 0 de otro modo. Con un
operando NULL el resultado es 1 si el
otro operando no es cero, y NULL de otro
modo. Si ambos operandos son NULL, el
resultado es 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
XOR
XOR lógica. Retorna NULL si algún
operando es NULL. Para operandos no
NULL , evalúa a 1 si un número par de
operandos es distinto a cero, sino retorna 0.
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 es matemáticamente igual a
(a AND (NOT b)) OR ((NOT a) and b).
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
