Heim > Datenbank > MySQL-Tutorial > Wie funktioniert der NULL-Safe Equals Operator () von MySQL?

Wie funktioniert der NULL-Safe Equals Operator () von MySQL?

Linda Hamilton
Freigeben: 2025-01-05 16:29:45
Original
891 Leute haben es durchsucht

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

Der Ungleich-NULL-Operator in MySQL: <=>

Bei der Arbeit mit SQL-Abfragen kann es vorkommen, dass Sie auf den <=>-Operator, was Fragen zu seiner Bedeutung und Syntax aufwirft. Dieser Leitfaden bietet ein umfassendes Verständnis dieses Operators und seiner Anwendungen.

Verstehen <=>

Die <=>-Operator ist als NULL-sicherer Gleichheitsoperator bekannt. Es ist analog zum regulären Gleichheitsoperator (=), jedoch mit einem entscheidenden Unterschied beim Umgang mit NULL-Werten.

Regulärer Gleichheitsoperator vs. NULL-sicherer Gleichheitsoperator

Der reguläre Gleichheitsoperator (=) gibt 0 zurück, wenn die Operanden ungleich sind, und 1, wenn sie gleich sind. Allerdings werden NULL-Werte als Sonderfall behandelt, was bei solchen Vergleichen zu NULL führt.

Der

<=>-Operator hingegen behandelt NULL-Werte anders. Es gibt 0 zurück, wenn die Operanden ungleich sind, und 1, wenn sie gleich sind, unabhängig davon, ob einer oder beide Operanden NULL sind. Mit anderen Worten:

  • 'a' <=> 'b' ergibt 0
  • 'a' <=> 'a' ergibt 1
  • 'a' <=> NULL ergibt 0
  • NULL <=> NULL ergibt 1

Nützlichkeit von <=>

Der Operator

<=> ist besonders nützlich Nützlich in Szenarien, in denen beide Operanden in einem Vergleich NULL-Werte enthalten können und Sie ein konsistentes Vergleichsergebnis zwischen beiden benötigen Spalten.

Eine weitere praktische Anwendung dieses Operators sind vorbereitete Anweisungen, in denen der Platzhalter sowohl Skalarwerte als auch NULL-Werte nahtlos verarbeiten kann, ohne dass die Abfrage geändert werden muss.

Verwandte Operatoren

MySQL bietet auch andere Operatoren zum Vergleichen von Werten an NULL:

  • IS NULL: Ergibt den Wert 1, wenn der Operand NULL ist, andernfalls 0.
  • IS NOT NULL: Ergibt den Wert auf 1, wenn der Operand nicht NULL ist, und auf 0 andernfalls.
Diese Operatoren können als Spezialisierungen des MySQL-Operators

<=> betrachtet werden. Zum Beispiel:

  • 'a' IS NULL entspricht 'a' <=> NULL
  • 'a' IS NOT NULL entspricht NOT('a' <=> NULL)

Support und Kompatibilität

Die

<=>-Operator ist MySQL-spezifisch und wird in anderen Datenbanken nicht unterstützt.

Der SQL:2003-Standard führte ein Prädikat ein:

IS [NOT] DISTINCT FROM , der sich identisch mit dem <=>-Operator von MySQL verhält.

Darüber hinaus kann der folgende komplexe, aber allgemein unterstützte Ausdruck die gleichen Ergebnisse erzielen:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie funktioniert der NULL-Safe Equals Operator () von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage