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 NULLocenia naFALSEmyText != ''ocenia doNULL(który zasadniczo zachowuje się tak samo jakFALSEczy 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.