StivinKing
@StivinKing

Как правильно выполнить условие в условии?

Доброго времени суток,

Сижу и реально туплю над маленькой задачкой с условием. Таблица из головы но совпадает с реальной.
| date | id | test1 | test2 | number |

В запросе мы должны получить всю строку, но при следующих условиях:
1) "наша дата" >= table.date
2) если id в запросе есть в таблице ("наш_id" = table.id) то забираем строку
3) если такого id нет, смотрим совпадение по "наш_test1" = table.test1 AND "наш_test2" = table.test2

Сейчас прописал только вариант, который при существующем id все равно находит по второму условию
SELECT *
FROM table
WHERE
    CASE WHEN id = "наш_id" THEN TRUE
    ELSE
        CASE WHEN test1 = "наш_test1" AND test2 = "наш_test2" THEN TRUE END
    END
ORDER BY date DESC
LIMIT 1
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
Собственно прямо по словесному описанию:
where
table.date <= наша дата
or
table.id = наш_id
or
("наш_test1" = table.test1 AND "наш_test2" = table.test2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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