SQL: выберите N "самых последних" строк в порядке возрастания
Например, если мои данные выглядят следующим образом:
timestamp | message
100 | hello
101 | world
102 | foo
103 | bar
104 | baz
Как я могу выбрать три последних строки - 102, 103, 104 - в порядке возрастания?
Очевидный (для меня) … LIMIT 3 ORDER BY timestamp DESC
вернет правильные строки, но порядок неверен.
Ответы
Ответ 1
Используйте внутренний выбор, чтобы выбрать правильные строки, и внешний выбор, чтобы упорядочить их правильно:
SELECT timestamp, message
FROM
(
SELECT *
FROM your_table
ORDER BY timestamp DESC
LIMIT 3
) T1
ORDER BY timestamp