Beim Umgang mit Tabellenspalten, die möglicherweise NULL-Werte enthalten, ist es wichtig zu verstehen, wie MySQL Vergleiche mit NULL-Werten handhabt.
Das Problem tritt auf, wenn der Ungleichheitsvergleich (CODE!='C') verwendet wird, der NULL-Wert jedoch nicht berücksichtigt wird. In diesem Fall schließt MySQL stillschweigend Datensätze mit NULL-Werten aus der Ergebnismenge aus, sodass der Eindruck entsteht, dass diese Datensätze nicht vorhanden sind.
Um Datensätze mit NULL-Werten in die Ergebnismenge aufzunehmen, muss der Vergleich explizit um die Berücksichtigung von NULL erweitert werden. Der richtige Weg ist die Verwendung der folgenden Syntax:
<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
Durch die Verwendung des IS NULL-Operators sucht MySQL explizit nach Datensätzen, deren CODE-Spalte NULL ist, und stellt so sicher, dass sie zusammen mit Datensätzen, deren CODE nicht gleich „C“ ist, in die Ergebnismenge aufgenommen werden.
Das Verhalten von MySQL in dieser Situation kann auf die Art und Weise zurückgeführt werden, wie es NULL als unbekannten oder undefinierten Wert behandelt. Ungleichheitsvergleiche wie != geben nur dann „true“ zurück, wenn ein klarer Unterschied zwischen den Operanden besteht. Da NULL ein unbekannter Wert ist, unterscheidet er sich nicht von anderen Werten (einschließlich „C“).
Achten Sie daher bei der Verwendung von Ungleichheitsvergleichen darauf, NULL-Werte explizit zu berücksichtigen, um genaue Ergebnisse zu gewährleisten. Der IS NULL-Operator bietet eine zuverlässige Möglichkeit, mit dieser Situation umzugehen und stellt sicher, dass alle relevanten Daten zurückgegeben werden.
Das obige ist der detaillierte Inhalt vonWie geht MySQL mit Ungleichheitsvergleichen mit NULL-Werten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!