Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen mit NULL-Werten in MySQL effektiv abrufen?

Wie kann ich Zeilen mit NULL-Werten in MySQL effektiv abrufen?

DDD
DDDOriginal
2024-12-25 04:52:11342Durchsuche

How Can I Effectively Retrieve Rows with NULL Values in MySQL?

Den Nullwert in MySQL verstehen

In MySQL kann es schwierig sein, Zeilen mit Nullwerten mithilfe des Standardvergleichsoperators (=) abzurufen. Diese Anomalie ist auf die Einzigartigkeit des Nullwerts in SQL zurückzuführen.

Die Herausforderung beim Abrufen von Nullwerten

Lassen Sie uns dies anhand eines Beispiels veranschaulichen:

SELECT pid FROM planets WHERE userid = NULL

Diese Abfrage Es wird erwartet, dass Zeilen zurückgegeben werden, in denen die Benutzer-ID-Spalte den NULL-Wert hat. In vielen Fällen wird jedoch ein leerer Satz zurückgegeben, obwohl die Daten in der Tabelle vorhanden sind (wie über phpMyAdmin überprüft).

Der Ursprung des Problems

Das Problem entsteht, weil null in SQL unterscheidet sich von anderen Werten. Nach einer der 12 Regeln von Codd kann null keinem anderen Wert entsprechen, auch nicht sich selbst. Folglich wird die Verwendung des =-Operators zum Vergleichen einer Spalte mit NULL immer „false“ zurückgeben.

Die Lösung: IS NULL-Operator

Um erfolgreich Zeilen mit Nullwerten abzurufen, müssen wir den IS NULL-Operator verwenden :

SELECT pid FROM planets WHERE userid IS NULL

Durch die Verwendung von IS NULL prüfen wir, ob die Spalte wirklich null ist, anstatt zu versuchen, sie mithilfe von = mit NULL zu vergleichen Operator.

Andere Überlegungen

  • Stellen Sie sicher, dass die Spalte tatsächlich null ist und nicht als „NULL“ oder „null“ mit einem nachgestellten Leerzeichen gespeichert wird.
  • Überprüfen Sie, ob Die Tabellen-Engine ist MyISAM, bei der es zu Problemen bei der Nullverarbeitung kommen kann. Eine Migration zu InnoDB kann dieses Problem lösen.

Es ist jedoch wichtig, andere Optionen auszuschöpfen, bevor Sie auf eine Änderung der Tabellenstruktur oder Engine zurückgreifen.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen mit NULL-Werten in MySQL effektiv abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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