Объединение нескольких запросов mysql

Есть несколько подобных запросов:

SELECT * FROM `data` where `id`=1 ORDER by time DESC limit 1
SELECT * FROM `data` where `id`=2 ORDER by time DESC limit 1
..
SELECT * FROM `data` where `id`=5 ORDER by time DESC limit 1

Можно ли их как-то объединить в один?


Ответы (2 шт):

Автор решения: Akina
WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY `time` DESC) rn
              FROM data
              WHERE id BETWEEN 1 AND 5 )
SELECT * 
FROM cte
WHERE rn = 1

DEMO

→ Ссылка
Автор решения: Roman Grinyov
SELECT * FROM `data` WHERE `id` IN (1, 2, ..);
→ Ссылка