Какое условие фильтра тождественно ложно (никогда не выполнится) для флага is_paying, который принимает только 0 или 1?

Ais_paying = 1 OR is_paying = 0
BNOT (is_paying = 1) OR is_paying = 1
Cis_paying = 1 OR NOT (is_paying = 0)
Dis_paying = 1 AND is_paying = 0
Правильный ответ. Условие is_paying = 1 AND is_paying = 0 — противоречие: флаг не может одновременно равняться двум значениям.

Разбор

Флаг не может одновременно равняться 1 и 0, поэтому условие is_paying = 1 AND is_paying = 0 никогда не выполнится — это противоречие. Такие условия иногда появляются при неверной склейке фильтров через AND или при попытке одновременно потребовать два взаимоисключающих сегмента. Распознавание тождественно ложных условий помогает понять, почему запрос возвращает пустой результат, и быстро найти ошибку логики. Противоположный случай — is_paying = 1 OR is_paying = 0 — наоборот, тождественно истинно для любой определённой строки.

Проверь себя · 1/3разбор после ответа
Условие в фильтре записали как NOT (NOT (is_test_user = 1)). Какое более простое условие ему эквивалентно?
Открыть Карьерник в Telegram

Ещё вопросы по теме «Булева логика и фильтры»