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
. Parenthèses . Opérateurs de comparaison ->Opérateurs logiques . Sensibilité à la casse
|
13.1.3 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
.
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
|
Le dernier exemple donne
1
car l'expression est
évaluée comme
(!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é.
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
|
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.
-
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é.
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
est mathématiquement égal à
(a AND (NOT b)) OR ((NOT a) and b)
.
|