Maison > base de données > tutoriel mysql > Pourquoi 'CODE!='C'' exclut-il les valeurs NULL dans les requêtes MySQL ?

Pourquoi 'CODE!='C'' exclut-il les valeurs NULL dans les requêtes MySQL ?

Susan Sarandon
Libérer: 2025-01-09 19:37:45
original
537 Les gens l'ont consulté

Why Does

Comparaison des valeurs NULL dans MySQL

Dans MySQL, comparer des colonnes contenant des valeurs NULL peut présenter des défis car le comportement est différent des comparaisons d'égalité standard. Cet article explique pourquoi une requête telle que « SELECT * from TABLE which CODE!='C' » exclut les lignes avec CODE=NULL, même si « C » n'est pas NULL.

Comportement de comparaison NULL

Lors de la comparaison d'une colonne à une valeur non NULL (telle que "CODE!='C'"), la requête renvoie les lignes où CODE correspond à "C" et exclut toutes les autres valeurs, y compris NULL. Ce comportement résulte du fait que SQL traite NULL comme une valeur unique qui ne participe pas aux comparaisons standard.

Pour inclure des valeurs NULL dans une comparaison, elles doivent être vérifiées explicitement à l'aide de l'opérateur IS NULL ou IS NOT NULL. Par exemple, la requête suivante renverra toutes les lignes où CODE est NULL ou différent de « C » :

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

Explication du comportement CODE!='C'

La raison pour laquelle "CODE!='C'" ne renvoie pas de lignes avec CODE=NULL est que la requête sera évaluée comme fausse pour toute comparaison impliquant NULL. Même si « C » n’est pas NULL, le comparer à une valeur NULL donnera toujours faux.

Opérateurs de comparaison alternatifs

MySQL fournit un opérateur de comparaison alternatif "<=" (inférieur ou égal à) qui peut être utilisé pour comparer des valeurs contenant NULL. L'évaluation de "x <= y" renvoie vrai si x est inférieur, égal à ou NULL, faux dans le cas contraire.

Vous pouvez renvoyer toutes les lignes où CODE est NULL ou différent de 'C' en utilisant "CODE <= 'C' OR CODE IS NULL" au lieu de "CODE!='C'".

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal