2010-06-17 4 views

Antwort

11

Ja, es gibt einen großen Unterschied zwischen einem NULL Wert und einem leeren/leer Wert.

Hier ist one resource, die die Unterschiede beschreibt.

Wenn myText IS NULL:

  • myText IS NOT NULL zu FALSE
  • myText != '' wertet ausgewertet NULL (der im wesentlichen die gleiche wie FALSE würde in diesem speziellen Fall verhält Sie schrieb)

Sie sollten jedoch nicht die Angewohnheit, sie gleich zu behandeln, da sie sich meistens unterschiedlich verhalten: Zum Beispiel:

Angenommen, Sie eine Tabelle tbl haben:

id text 
1 NULL 
2  
3 abc 

Hinweis: 1 enthält einen NULL Wert und 2 enthält einen leeren String ('').

Wenn Sie die folgende Abfrage ausführen:

SELECT * FROM tbl WHERE text != '' 

... es wird Datensatz zurückkehren 3.

Wenn Sie die folgende Abfrage ausführen:

SELECT * FROM tbl WHERE text IS NOT NULL 

... es wird die Datensätze 2 und 3 zurückgeben.

2

Ja, es gibt einen Unterschied.

In einfachen Worten, myText NOT NULL gibt an, dass myText einen gewissen Wert ist, die '' auch sein könnte.

Wo, wie myText! = '' gibt an, dass es TRUE zurück, wenn myText NICHT einen leeren String enthalten.

1

Es gibt einen Unterschied. Wenn der Standardwert einer Spalte "NULL" ist, wurden keine Daten für ein Feld festgelegt. Wenn der Wert eines Felds jedoch als '' aktualisiert wurde, ist es nicht NULL, sondern leer.

Hier finden Sie weitere Informationen Link