Maison > base de données > tutoriel mysql > Comment fonctionne l'opérateur NULL-Safe Equals () de MySQL ?

Comment fonctionne l'opérateur NULL-Safe Equals () de MySQL ?

Linda Hamilton
Libérer: 2025-01-05 16:29:45
original
916 Les gens l'ont consulté

How Does MySQL's NULL-Safe Equals Operator () Work?

L'opérateur différent de NULL dans MySQL : <=>

Lorsque vous travaillez avec des requêtes SQL, vous pouvez rencontrer le <=>, soulevant des questions sur sa signification et sa syntaxe. Ce guide fournira une compréhension approfondie de cet opérateur et de ses applications.

Comprendre <=>

Le <=> est connu sous le nom de Opérateur égal à sécurité NULL. Il est analogue à l'opérateur égal régulier (=), mais avec une distinction cruciale lorsqu'il s'agit de valeurs NULL.

Opérateur égal régulier contre opérateur égal NULL-Safe

L'opérateur égal régulier (=) renvoie 0 si les opérandes sont inégaux et 1 s'ils sont égaux. Cependant, il traite les valeurs NULL comme un cas particulier, donnant comme résultat NULL dans de telles comparaisons.

L'opérateur

<=>, en revanche, gère les valeurs NULL différemment. Il renvoie 0 si les opérandes sont inégaux et 1 s'ils sont égaux, que l'un ou les deux opérandes soient NULL. Autrement dit :

  • 'a' <=> 'b' est évalué à 0
  • 'a' <=> 'a' est évalué à 1
  • 'a' <=> NULL est évalué à 0
  • NULL <=> NULL est évalué à 1

Utilité de <=>

L'opérateur

<=> est particulièrement utile dans les scénarios où les deux opérandes d'une comparaison peuvent contenir des valeurs NULL et où vous avez besoin d'un résultat de comparaison cohérent entre deux colonnes.

Une autre application pratique de cet opérateur concerne les instructions préparées, où l'espace réservé peut gérer de manière transparente à la fois les valeurs scalaires et les valeurs NULL sans avoir besoin de modifier la requête.

Opérateurs associés

MySQL propose également d'autres opérateurs pour comparer les valeurs avec NULL :

  • IS NULL : Évalue à 1 si l'opérande est NULL, et 0 sinon.
  • IS NOT NULL : Évalue à 1 si l'opérande n'est pas NULL, et 0 sinon.
Ces opérateurs peuvent être considérées comme des spécialisations de l'opérateur

<=> de MySQL. Par exemple :

  • 'a' IS NULL est équivalent à 'a' <=> NULL
  • 'a' IS NOT NULL est équivalent à NOT('a' <=> NULL)

Support et compatibilité

Le L'opérateur

<=> est spécifique à MySQL et n'est pas pris en charge sur d'autres bases de données.

La norme SQL : 2003 a introduit un prédicat,

EST [NOT] DISTINCT FROM , qui se comporte de manière identique à l'opérateur <=> de MySQL.

De plus, l'expression complexe mais universellement prise en charge suivante peut obtenir les mêmes résultats :

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1
Copier après la connexion

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