Традиционно большинство языков программирования имеют приоритет И выше приоритета OR, так что выражение «a OR b AND c» рассматривается как «a OR (b AND c)». После этой идеи поисковые системы и языки запросов/адресации (css, xpath, sql, ...) использовали ту же приоритетность. Разве это не ошибка?Должны ли языки запросов иметь приоритет оператора ИЛИ выше приоритета И?
При работе с достаточно большими данными эта приоритизация неудобна, поскольку она не позволяет создать многоразовый контекст запроса без использования круглых скобок. Удобнее создавать контекст, используя И, а затем результаты объединения в этом контексте, используя OR. Это еще более удобно, если пространство используется как оператор AND, а запятая используется как оператор OR.
Примеры: При поиске в интернете для авиабилетов в Багамах в ноябре или декабре, было бы удобнее, чтобы напечатать «Багамские о-ва авиабилете ноябрь, декабрь» вместо «авиакомпании Багамских островов билет ноябрь», «багамы авиабилете декабрь» или "авиабилет bahamas (ноябрь, декабрь)"
В CSS, если нам нужно установить стиль красного из 2 элементов, мы должны сделать это: body.app1 div.d1 td.phone span.area, body.app1 div.d1 td.fax span.area {color: red} по существу дублирующий префикс body.app1 div.d1 и suffix span.area
Если приоритет OR был выше AND, мы бы указали это в CSS: body.app1 div.d 1 td.phone, td.fax span.area {color: red}
Конечно, эта идея может быть превращена в 2 оператора ИЛИ с более высоким приоритетом, чем И, а другая с более низким, например ',' выше, ';' ниже, но во многих случаях языки не имеют запасных символов, чтобы расширить этот путь, а также существующий приоритет «,», где он используется, является низким.
Обратите внимание, что фильтры gmail уже используют эту обратную приоритизацию - приоритет | над пространством (AND). – alpav
Обратите внимание, что при разработке критериев для запросов в MS Access вы можете поместить A или B в один столбец и C в другой столбец, а MS Access будет строить запрос с помощью (A or B) и C. – alpav