Какому выражению со скобками эквивалентно условие is_new = 1 OR is_paying = 1 AND has_coupon = 1, если AND выполняется раньше OR?

Ais_new = 1 OR (is_paying = 1 AND has_coupon = 1)
B(is_new = 1 OR is_paying = 1) AND has_coupon = 1
C(is_new = 1 AND is_paying = 1) OR has_coupon = 1
Dis_new = 1 AND (is_paying = 1 OR has_coupon = 1)
Правильный ответ. AND имеет более высокий приоритет, поэтому сначала вычисляется is_paying = 1 AND has_coupon = 1.

Разбор

В выражениях фильтрации AND обычно выполняется раньше OR. Поэтому запись без скобок читается как is_new = 1 OR (is_paying = 1 AND has_coupon = 1). Если вы хотели сгруппировать иначе, добавьте скобки и не полагайтесь на приоритет операторов.

Проверь себя · 1/3разбор после ответа
Какое условие является always false для флага is_paying, который принимает только 0 или 1?
Открыть Карьерник в Telegram

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