Доброго времени суток,
Сижу и реально туплю над маленькой задачкой с условием. Таблица из головы но совпадает с реальной.
| 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