@Little_Junior

Какой приоритет у OR?

Какой приоритет у оператора OR? Если я делаю выборку из таблицы и мне нужен нужно например в приоритете найти по ID, а после, если не найдено то по CODE: `id` = value OR `code` = value. Что он будет искать в приоритете, если есть и то, и то?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@mayton2019
Bigdata Engineer
Если не знаете приоритет - то всегда можно поставить скобки. Это решает проблемы и не несет накладных расходов.
Просто код становится на 2 символа длиннее.

SELECT ..... FROM .... WHERE (CODE: `id` = value OR `code` = value) .... other predicates....


Update:

Если тебе надо гарантировать что поле не пустое - то добавь еще один предикат IS NOT NULL.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bacon
например в приоритете найти по ID, а после, если не найдено то по CODE
для OR этот "приоритет" безразличен

если есть и то, и то
это про AND
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
SELECT
IF (i.id = :value , 1, 0) as _order_rank,
i.*
FROM `items` i
WHERE i.id = 100 or i.code = 'T1000'
ORDER by _order_rank DESC
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы