Ano, je velký rozdíl mezi NULL
hodnotu a prázdnou/prázdnou hodnotu.
Zde je jeden zdroj který popisuje rozdíly.
Když myText IS NULL
:
myText IS NOT NULL
vyhodnotí jakoFALSE
myText != ''
se vyhodnotí jakoNULL
(který se v podstatě chová stejně jakoFALSE
by v tomto konkrétním případě jste napsal)
Neměli byste si však zvyknout zacházet s nimi stejně, protože se většinou budou chovat jinak:Například:
Předpokládejme, že máte tabulku tbl
:
id text
1 NULL
2
3 abc
Poznámka: 1 obsahuje NULL
hodnota a 2 obsahuje prázdný řetězec (''
).
Pokud spustíte následující dotaz:
SELECT * FROM tbl WHERE text != ''
... vrátí záznam 3.
Pokud spustíte následující dotaz:
SELECT * FROM tbl WHERE text IS NOT NULL
... vrátí záznamy 2 a 3.