Opérateur d'égalité Null-Safe de MySQL : comprendre l'attribut <=> Opérateur
Lorsque vous travaillez avec des requêtes de base de données, il est essentiel de comprendre les opérateurs utilisés. Dans MySQL, l'opérateur <=> est souvent rencontré, soulevant des questions sur sa signification et sa fonctionnalité.
Contexte de la requête
Dans le fragment de requête fourni :
WHERE p.name <=> NULL
le < => L’opérateur est utilisé pour comparer la valeur de p.name avec NULL. Cette comparaison soulève une question fondamentale : que fait réellement l'opérateur ?
Égalité Null-Safe
Contrairement à l'opérateur d'égalité régulier (=), le <=> ; L’opérateur est connu sous le nom d’opérateur d’égalité null-safe. Il effectue une comparaison d'égalité, mais il traite la valeur de NULL différemment.
Comportement avec des valeurs non NULL
Lors de la comparaison de valeurs non NULL, <=> ; se comporte comme l'opérateur =. Deux valeurs sont comparées et le résultat est soit 0 (différent) ou 1 (égal). Par exemple :
'a' <=> 'b' = 0 (not equal) 'a' <=> 'a' = 1 (equal)
Comportement avec des valeurs NULL
Cependant, où <=> ce qui se démarque vraiment, c'est sa gestion des valeurs NULL. Avec <=>, les valeurs NULL n'ont pas de signification particulière. La comparaison donne toujours 0 (différent) ou 1 (égal) sans possibilité d'un résultat NULL. Par exemple :
'a' <=> NULL = 0 (not equal) NULL <=> NULL = 1 (equal)
Utilité et applications
L'opérateur d'égalité sans risque nul est particulièrement utile lorsque les deux opérandes peuvent contenir NULL. Il fournit un résultat de comparaison cohérent entre deux colonnes, qu'elles contiennent ou non NULL. De plus, il peut être utilisé avec des instructions préparées pour gérer facilement des valeurs scalaires ou des espaces réservés NULL.
Opérateurs et alternatives associés
Outre <=>, MySQL également fournit deux autres opérateurs spécialement conçus pour les comparaisons avec NULL : IS NULL et IS NOT NULL. Ces opérateurs font partie de la norme ANSI et sont pris en charge sur plusieurs bases de données.
La norme SQL:2003 a introduit le prédicat IS [NOT] DISTINCT FROM, qui fonctionne de la même manière que le prédicat <=> opérateur. Cependant, son soutien n'est pas universel.
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!