В форме регистрации есть два флага: has_email = 1 и has_phone = 1. Что означает фильтр NOT (has_email = 1) AND NOT (has_phone = 1)?

AУ пользователя указан хотя бы один контакт: has_email = 1 OR has_phone = 1 после преобразования
BУ пользователя указаны оба контакта одновременно: has_email = 1 AND has_phone = 1
CУ пользователя не указан ни один контакт: ложно и has_email = 1, и has_phone = 1
DУ пользователя указан ровно один контакт: один из флагов равен 1, а другой 0
Правильный ответ. Связка NOT A AND NOT B означает, что не выполнено ни одно из двух условий.

Разбор

Чтобы строка прошла фильтр, должны быть ложными оба условия: и has_email = 1, и has_phone = 1. Это случай, когда не указан ни один контакт. Частая ошибка — путать с NOT (A AND B), что по закону Де Моргана равно NOT A OR NOT B и допускает заполнение одного контакта из двух.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Открыть Карьерник в браузере

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