Operadores Logicos
Em SQL, todos os operadores logicos avaliam TRUE (VERDADEIRO), FALSE (FALSO) ou NULL (DESCONHECIDO). No MySQL, esta implementação é como 1 (TRUE), 0 (FALSE), e NULL. A maioria deles é comum entre diferentes bancos de dados SQL. no entanto alguns podem retonar qualquer valor diferente de zero para TRUE.
NOT,!NOT logico. Avalia como
1se o operador é0, como0se o operador é diferente de zero, eNOT NULLretornaNULL.mysql>
SELECT NOT 10;-> 0 mysql>SELECT NOT 0;-> 1 mysql>SELECT NOT NULL;-> NULL mysql>SELECT ! (1+1);-> 0 mysql>SELECT ! 1+1;-> 1O último exemplo produz
1pois a a expressão é avaliada como(!1)+1.AND,&&AND lógico. Avalia como
1se todos os operandos são diferentes de zero e não éNULL, como0se um ou mais operandos são0, senão retornaNULL.mysql>
SELECT 1 && 1;-> 1 mysql>SELECT 1 && 0;-> 0 mysql>SELECT 1 && NULL;-> NULL mysql>SELECT 0 && NULL;-> 0 mysql>SELECT NULL && 0;-> 0Por favor note que as versões do MariaDB anteriores a versão 4.0.5 param a avaliação quando um valor
NULLé encontrado, e não continua o processo buscando por possíveis0s. Isto significa que nessa versão,SELECT (NULL AND 0)retornaNULLao invés de0. Na versão 4.0.5 o código tem sido re-elaborado para que o resultado sempre seja como prescrito pelo padrão SQL utilizando a otimização sempre que possível.OR,||OR lógico. Avalia como
1se algum operando é diferente de zero e comoNULLse algum operando forNULL, senão0é retornado.mysql>
SELECT 1 || 1;-> 1 mysql>SELECT 1 || 0;-> 1 mysql>SELECT 0 || 0;-> 0 mysql>SELECT 0 || NULL;-> NULL mysql>SELECT 1 || NULL;-> 1XORXOR lógico. Retorna
NULLse o operando também éNULL. Para operandos nãoNULL, avalia como1se um número ímpar de operandos é diferente de zero, senão0é retornado.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;-> 1a XOR bé matematicamente igual a(a AND (NOT b)) OR ((NOT a) and b).XORfoi adicionado na versão 4.0.2.