Для двух флагов used_card = 1 и used_paypal = 1 нужно выбрать пользователей, которые использовали ровно один способ оплаты. Какое условие соответствует этому, используя комбинацию OR, AND и NOT без перечисления двух кейсов?

Aused_card = 1 OR used_paypal = 1 без других дополнительных условий
BNOT (used_card = 1 OR used_paypal = 1) без других дополнительных условий
C(used_card = 1 OR used_paypal = 1) AND NOT (used_card = 1 AND used_paypal = 1)
Dused_card = 1 AND used_paypal = 1 без других дополнительных условий
Правильный ответ. Условие «ровно один» можно записать как «хотя бы один» AND NOT «оба одновременно».

Разбор

Первая часть (A OR B) гарантирует, что выполнено хотя бы одно условие. Вторая часть NOT (A AND B) запрещает ситуацию, когда истинны оба условия одновременно. В сочетании это даёт ровно один истинный флаг. Такая форма удобна, когда сами условия длинные и их не хочется дублировать в двух ветках. Простое OR пропустит и тех, у кого оба флага, а простое AND оставит только пересечение.

Проверь себя · 1/3разбор после ответа
Поле country содержит ровно одно значение на пользователя. Какое условие в фильтре никогда не будет истинным?
Открыть Карьерник в Telegram

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