В форме регистрации есть два флага: 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 = 1CУ пользователя не указан ни один контакт: ложно и
has_email = 1, и has_phone = 1DУ пользователя указан ровно один контакт: один из флагов равен 1, а другой 0
Правильный ответ. Связка
NOT A AND NOT B означает, что не выполнено ни одно из двух условий.Разбор
Чтобы строка прошла фильтр, должны быть ложными оба условия: и has_email = 1, и has_phone = 1. Это случай, когда не указан ни один контакт. Частая ошибка — путать с NOT (A AND B), что по закону Де Моргана равно NOT A OR NOT B и допускает заполнение одного контакта из двух.
Проверь себя · 1/3разбор после ответа
В сегмент нужно включить пользователей, у которых активен хотя бы один из флагов:
is_student = 1 или has_coupon = 1. Какое условие соответствует формулировке «хотя бы один»?Ещё вопросы по теме «Булева логика и фильтры»
- Какому выражению со скобками эквивалентно условие `is_new = 1 OR is_paying = 1 AND has_coupon = 1`, если `AND` выполняется раньше `OR`?
- В фильтре написали `country = 'RU' AND device = 'ios' OR device = 'android'`. Какой набор строк реально пройдёт фильтр при стандартном приоритете, где `AND` сильнее `OR`?
- Какое условие эквивалентно `NOT (is_paying = 1 AND has_subscription = 1)` по правилу де Моргана? Выберите запись через `OR`.
- Вы хотите выбрать строки, которые не относятся к `country = 'RU' OR country = 'KZ'`. Какое выражение соответствует `NOT (country = 'RU' OR country = 'KZ')` по правилу де Моргана?
- В таблице пользователей есть флаги `has_email_optin` и `has_push_optin` (0 или 1). Нужно выбрать пользователей, у которых включён ровно один канал (email или push, но не оба). Какое условие корректно?
- Все вопросы по «Булева логика и фильтры» →