Tak, jest duża różnica między NULL
wartość i pusta/pusta wartość.
Oto jeden zasób który opisuje różnice.
Gdy myText IS NULL
:
myText IS NOT NULL
ocenia naFALSE
myText != ''
ocenia doNULL
(który zasadniczo zachowuje się tak samo jakFALSE
czy w tym konkretnym przypadku napisałeś)
Jednak nie powinieneś przyzwyczajać się do traktowania ich tak samo, ponieważ w większości przypadków będą się zachowywać inaczej:Na przykład:
Załóżmy, że masz tabelę tbl
:
id text
1 NULL
2
3 abc
Uwaga: 1 zawiera NULL
wartość, a 2 zawiera pusty ciąg (''
).
Jeśli uruchomisz następujące zapytanie:
SELECT * FROM tbl WHERE text != ''
... zwróci rekord 3.
Jeśli uruchomisz następujące zapytanie:
SELECT * FROM tbl WHERE text IS NOT NULL
... zwróci rekordy 2 i 3.