La valeur NULL
peut se comporter de manière surprenante si vous l'utilisez. Conceptuellement, NULL
signifie ``valeur manquante '' ou `` valeur inconnue'' et il est traité de manière légèrement différente des autres valeurs. Pour tester une valeur à NULL
, vous ne pouvez pas utiliser les opérateurs de comparaison habituels, tels que =
, <
or !=
. Pour vous en convaincre, essayez la requête suivante :
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
Clairement, vous n'obtiendrez aucun résultat significatif de ces comparaisons. Utilisez les opérateurs IS NULL
et IS NOT NULL
:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
Avec MySQL, 0 signifie faux et 1 signifie vrai.
Cette gestion spéciale de NULL
explique pourquoi, dans la section précédente, il était nécessaire de savoir quels animaux étaient encore vivant, en utilisant mort IS NOT NULL
à la place de mort != NULL
.