Maison > base de données > tutoriel mysql > Pourquoi MySQL exclut-il les valeurs NULL lors de l'utilisation de l'opérateur != dans une clause WHERE ?

Pourquoi MySQL exclut-il les valeurs NULL lors de l'utilisation de l'opérateur != dans une clause WHERE ?

DDD
Libérer: 2025-01-09 19:51:41
original
935 Les gens l'ont consulté

Why Does MySQL Exclude NULL Values When Using the != Operator in a WHERE Clause?

Comparaison MySQL avec des valeurs NULL

Comprendre comment MySQL gère ces comparaisons est essentiel lorsqu'il s'agit de colonnes qui autorisent les valeurs NULL, comme la colonne CODE dans l'exemple. Pourquoi la requête suivante exclut-elle les lignes où CODE est NULL ?

<code class="language-sql">SELECT * from TABLE where CODE!='C'</code>
Copier après la connexion

Cela est dû au fait que l'opérateur != (différent de) ne teste pas explicitement les valeurs NULL. Il vérifie uniquement si la valeur n'est pas égale à « C ». Puisque NULL est une valeur spéciale qui indique une valeur manquante, elle n’est ni égale ni inégale à une valeur spécifique.

Pour inclure des valeurs NULL, vous devez utiliser l'opérateur IS NULL ou IS NOT NULL. Ces opérateurs vérifient explicitement la présence de valeurs NULL. La requête correcte doit être :

<code class="language-sql">SELECT * from TABLE where CODE IS NULL OR CODE!='C'</code>
Copier après la connexion

En utilisant IS NULL ou IS NOT NULL, la requête s'assure qu'elle contient des lignes où CODE est NULL, ainsi que des lignes où CODE n'est pas égal à 'C'. En effet, l'opérateur OR traite les deux conditions comme des critères valides pour la correspondance des lignes.

En résumé, lorsque vous comparez des colonnes pouvant contenir des valeurs NULL, utilisez toujours l'opérateur IS NULL ou IS NOT NULL pour tester explicitement la présence de valeurs NULL. Sinon, les résultats de la comparaison pourraient ne pas être ceux attendus.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal