Задать вопрос
@Little_Junior

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

Какой приоритет у оператора OR? Если я делаю выборку из таблицы и мне нужен нужно например в приоритете найти по ID, а после, если не найдено то по CODE: `id` = value OR `code` = value. Что он будет искать в приоритете, если есть и то, и то?
  • Вопрос задан
  • 83 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Если не знаете приоритет - то всегда можно поставить скобки. Это решает проблемы и не несет накладных расходов.
Просто код становится на 2 символа длиннее.

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


Update:

Если тебе надо гарантировать что поле не пустое - то добавь еще один предикат IS NOT NULL.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы