поле status.
где-то оно == 0, где то 1, где=то 2, и где-то NULL.
Хочу сделать выборку
WHERE `status` != 9
но из выборки пропадают все записи со статусом NULL хотя NULL != 9 и они должны остаться в выборке.
Вопрос: WTF?
WHERE `status` <> '9' OR `status` IS NULL
в mysql и вообще в SQL понятие NULL подразумеват под собой смисл что значение поля НЕИЗВЕСТНО, а поскольку значение неизвестно то SQL не знает равно ли оно 9 или не равно. Как результат просто не берет его и чтобы получить его есть только способ IS NULL в других языках NULL имеет немного другой смисл и это поначалу может сбить с толку
Любое сравнение с null будет false
WHERE IFNULL(`status`, 0) != 9
Обсуждают сегодня