NULL
специально для SQL. У вас есть условие: tuan_id <> 14
будет TRUE
только для значений, отличных от 14
. Для строк, которые tuan_id
равны NULL
,:
tuan_id <> 14
будет:
NULL <> 14
, который оценивается как:
UNKNOWN
поэтому эти строки не удалены. WHERE
условия выполняются при оценке до TRUE
. Они отклоняются, когда они оценивают FALSE
или UNKNOWN
.
SQL использует 3-значную логику
Итак, если вы также хотите удалить Null, вы можете использовать это утверждение:
DELETE
FROM tuan_details
WHERE tuan_id <> 14
OR tuan_id IS NULL ;