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:
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:<=> betrachtet werden. Zum Beispiel:
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
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!