| 13.1 Opérateurs et fonctions tous types
 13 Fonctions à utiliser dans les clauses SELECT et WHERE
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Précédence des opérateurs
 . Parenthèses
 . Opérateurs de comparaison
 ->Opérateurs logiques
 
 
 | 
  13.1.4 Opérateurs logiques   
 
En SQL, tous les opérateurs logiques évaluent à 
 
TRUE
 ,  
FALSE
  ou  
NULL
  (INCONNU).
En MySQL, c'est implémenté en  
1
  (TRUE),  
0
  (FALSE),
et  
NULL
 . La plupart de ce qui suit est est commun entre les différents 
bases de données SQL, pourtant, certains système pourraient retourner une valeur 
non nulle pour TRUE (pas obligatoirement 1).
 
NOT
      
      
!
      NOT (NON) logique.
Evalue à  
1
  si l'opérande est  
0
 , à  
0
  si l'opérande est non nulle,
et  
NOT NULL
  retourne  
NULL
 .
 
Le dernier exemple donne  
1
  car l'expression est
évaluée comme  
(!1)+1
 .| 
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
 | 
   
AND
      
      
&&
AND
  (ET) logique.
Evalue à  
1
  si toutes les opérandes sont différentes de zéro
et de  
NULL
 , à  
0
  si l'une des opérandes est  
0
 ,
dans les autres cas,  
NULL
  est retourné.
 
Notez que pour les versions antérieures à la 4.0.5 l'évaluation est 
interrompue lorsque  
NULL
  est rencontré, au lieu de continuer 
à tester une éventuelle existence de  
0
 . 
Cela signifie que dans ces versions,  
SELECT (NULL AND 0)
  retourne 
 
NULL
  au lieu de  
0
 . En 4.0.5 le code a été revu pour que le 
résultat réponde toujours au normes ANSI tout en optimisant le plus possible.| 
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 (OU inclusif) logique.
Evalue à  
1
  si aucune opérande n'est nulle, à  
NULL
  si l'une
des opérandes est  
NULL
 , sinon  
0
  est retourné.
 
| 
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 (OU exclusif) logique.
Retourne  
NULL
  si l'une des opérandes est  
NULL
 .
Pour les opérandes non- 
NULL
 , évalue à  
1
  si un nombre pair
d'opérandes est non-nul, sinon  
0
  est retourné.
 
a XOR b
  est mathématiquement égal à  
(a AND (NOT b)) OR ((NOT a) and b)
 .| 
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
 | 
 |