Maison >base de données >tutoriel mysql >Comment les opérateurs `!=` et `` se comportent-ils avec des valeurs NULL dans SQL ?
Opérateurs !=
et <>
SQL et valeurs NULL : une clarification
SQL !=
(différent de) et <>
présentent un comportement unique lorsqu'ils rencontrent des valeurs NULL
. Comprendre cela nécessite de saisir l'essence de NULL
en SQL.
NULL
signifie l'absence de valeur, pas une chaîne vide ("") ou zéro (0). Cela indique qu'aucune valeur de données n'a été attribuée à un champ ou une colonne.
Normalement, !=
et <>
renvoient true
si les valeurs diffèrent. Cependant, cela ne s'applique pas à NULL
.
Considérez ceci :
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL; -- (0 Results)</code>
Cette requête ne donne aucun résultat, même si MyColumn
contient des entrées nonNULL
. La raison ? !=
et <>
ne peuvent pas fonctionner sur NULL
. Ils ont besoin d'une valeur concrète à titre de comparaison.
À l'inverse :
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn IS NOT NULL; -- (568 Results)</code>
Cette requête renvoie correctement toutes les lignes où MyColumn
n'est pas NULL
. IS NOT NULL
est spécifiquement conçu pour vérifier l'absence d'une valeur (NULL
).
En résumé : NULL
est une valeur unique en SQL. Utiliser !=
ou <>
pour comparer avec NULL
donne toujours false
. Pour tester avec précision l'absence de valeur, utilisez l'opérateur IS NOT NULL
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!