Поскольку поле NULL
в name
не попадает ни в один запрос.
В троичной логике, которую использует SQL
, NULL = 'Smith'
и NOT NULL = 'Smith'
оба оцениваются как NULL
и фильтруютсяout.
Используйте NULL
-защищенный оператор сравнения, <=>
:
SELECT * FROM `workers` WHERE `name` <=> 'Smith`
и
SELECT * FROM `workers` WHERE NOT `name` <=> 'Smith`