Maison >base de données >tutoriel mysql >IS NULL vs. = NULL en SQL : quelle est la bonne façon de tester les valeurs nulles ?
Le filtrage des lignes en fonction de la présence ou de l'absence de valeurs NULL est une tâche courante en SQL. Comprendre les nuances du test des valeurs NULL à l'aide de IS NULL
et = NULL
est essentiel pour écrire des requêtes précises.
IS NULL
est un opérateur SQL spécialement conçu pour tester si un champ contient une valeur NULL. Contrairement aux opérateurs de valeur tels que =
, le résultat de IS NULL
est VRAI lorsque le champ est NULL et FALSE dans le cas contraire.
Contrairement à IS NULL
, field = NULL
est une comparaison d'égalité qui tente de comparer la valeur du champ à un littéral NULL. En SQL, une valeur NULL se compare à toute autre valeur (même une autre NULL) à NULL elle-même. Selon la logique SQL, les valeurs NULL sont intrinsèquement inconnues, les comparaisons directes d'égalité ne sont donc pas fiables.
Dans une clause WHERE
, une condition contenant field = NULL
sera toujours évaluée à NULL, ce qui est considéré comme FALSE en SQL. Par conséquent, field = NULL
ne peut pas filtrer correctement les lignes contenant des valeurs NULL. À cette fin, field IS NULL
doit être utilisé.
Considérez l'instruction SQL suivante :
<code class="language-sql">SELECT * FROM table WHERE column = NULL;</code>
Cette instruction ne renverra aucune ligne même si le champ column
contient une valeur NULL. Pour filtrer correctement les valeurs NULL, l'instruction correcte serait :
<code class="language-sql">SELECT * FROM table WHERE column IS NULL;</code>
Bien que IS NULL
et = NULL
se ressemblent, il est important de se rappeler que IS NULL
est le moyen préféré et correct pour tester les valeurs NULL dans les requêtes SQL. En raison de la gestion unique des valeurs NULL par SQL, l'utilisation de = NULL
peut conduire à des résultats trompeurs. En suivant la méthodologie de requête correcte, les développeurs peuvent garantir l'exactitude et l'efficacité de leur code SQL.
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!