Maison >base de données >tutoriel mysql >Pourquoi « A B » suffit-il pour les comparaisons d'inégalités avec les colonnes nullables dans SQL ?
Paradoxe d'inégalité nulle résolu
En SQL, tester l'égalité entre deux colonnes nullables nécessite des vérifications supplémentaires pour gérer le cas où les deux colonnes sont NULL. En effet, NULL, représentant une valeur inconnue, ne peut pas être comparé directement à un autre NULL. Cependant, lors du test de l'inégalité, une approche plus simple peut être utilisée.
Inégalité avec les colonnes nullables
Au départ, il était supposé que tester l'inégalité entre les colonnes nullables nécessiterait une procédure complexe. condition :
WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
Cependant, dans de nombreuses implémentations SQL, telles que Informix 11.5, un la condition suffit :
WHERE (A <> B)
Comprendre le comportement
Ce comportement découle de la logique ternaire, où NULL est traité comme une valeur inconnue. Considérons les cas suivants :
Condition d'inégalité simplifiée
Ainsi, le simplifié (A <> B) La condition fonctionne correctement car elle ne tente pas de comparer directement les valeurs NULL. Au lieu de cela, il s'appuie sur le principe de logique ternaire selon lequel les valeurs inconnues ne sont égales à rien.
Conclusion
Lors du test d'inégalité entre des colonnes nullables, il suffit d'utiliser le condition simple (A <> B). En effet, NULL, en tant que valeur inconnue, ne peut pas être directement comparé à d'autres valeurs, y compris elle-même. L'utilisation de l'approche logique ternaire où NULL est considéré comme inconnu simplifie l'expression et garantit des résultats précis.
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!