@snake2
Сразу пишу legacy код

Как получить нужные данные?

Есть бд
id client_id hub_id
1 1 null
2 1 1
3 null null
4 null null

Надо чтобы запрос проверял сначла первое условие и так по порядку, если условие подходит возвращал только одну эту запись
Как написать sql запрос, чтобы 1)если есть client_id и hub_id он выбирал эту запись
2)Если client_id не null выбирал запись
3)Далее если hub_id не null
Далее 4)Если и hub_id и client_id null
select *
from `table1`
where (`client_id` = 1 or `client_id` is null)
  and (`hub_id` = 2 or `hub_id` is null)
  and `is_active` = 1;
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Может, требуется тривиальное
SELECT *
FROM tablename
ORDER BY client_id IS NULL, hub_id IS NULL
LIMIT 1

?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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