Lorsque vous traitez des colonnes de tableau pouvant contenir des valeurs NULL, il est important de comprendre comment MySQL gère les comparaisons impliquant des valeurs NULL.
Le problème se produit lors de l'utilisation de la comparaison d'inégalités (CODE!='C'), mais la valeur NULL n'est pas prise en compte. Dans ce cas, MySQL exclura silencieusement les enregistrements contenant des valeurs NULL du jeu de résultats, donnant l'impression que ces enregistrements n'existent pas.
Afin d'inclure les enregistrements contenant des valeurs NULL dans l'ensemble de résultats, la comparaison doit être explicitement étendue pour tenir compte de NULL. La bonne manière est d'utiliser la syntaxe suivante :
<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
En utilisant l'opérateur IS NULL, MySQL vérifie explicitement les enregistrements dont la colonne CODE est NULL, s'assurant qu'ils sont inclus dans le jeu de résultats avec les enregistrements dont CODE n'est pas égal à « C ».
Le comportement de MySQL dans cette situation peut être attribué à la façon dont il traite NULL comme une valeur inconnue ou indéfinie. Les comparaisons d'inégalités, telles que !=, renvoient vrai uniquement s'il existe une différence nette entre les opérandes. Puisque NULL est une valeur inconnue, elle n’est pas considérée comme différente de toute autre valeur (y compris « C »).
Par conséquent, lorsque vous utilisez des comparaisons d'inégalités, assurez-vous de prendre explicitement en compte les valeurs NULL pour garantir des résultats précis. L'opérateur IS NULL fournit un moyen fiable de gérer cette situation et garantit que toutes les données pertinentes sont renvoyées.
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!