sql выбрать последние n строк, отсортировать их в обратном порядке - PullRequest
0 голосов
/ 25 сентября 2019

Из упорядоченной (по datetime) таблицы мне нужно получить последние 9 строк.

Поскольку я использую ...

SELECT fecha_hora
  , estado_viejo
FROM cambios_de_estado 
WHERE usuario_id = '35512'
ORDER BY fecha_hora DESC
LIMIT 9

... вывод инвертирован.

Мне нужно получить исходный заказ.

Запрос длиннее.Это сложная часть для меня.

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Вы можете заключить свой запрос в другой, упорядочив внешний запрос по столбцу fecha_hora по возрастанию:

SELECT t.*
FROM (
  SELECT fecha_hora
    , estado_viejo
  FROM cambios_de_estado 
  WHERE usuario_id = '35512'
  ORDER BY fecha_hora DESC
  LIMIT 9
) AS t
ORDER BY t.fecha_hora ASC
1 голос
/ 25 сентября 2019

Возможно, вам придется отредактировать способ, которым вы задаете свой вопрос, потому что он неясен.

Но вам может потребоваться использовать

ASC вместо DESC

ASC означает старую дату к новой дате (Увеличение) DESC означает новую дату к старой дате (Уменьшение)

SELECT fecha_hora
  , estado_viejo
FROM cambios_de_estado 
WHERE usuario_id = '35512'
ORDER BY fecha_hora ASC
LIMIT 9
1 голос
/ 25 сентября 2019

Использовать подзапрос:

SELECT ce.*
FROM (SELECT fecha_hora, estado_viejo
      FROM cambios_de_estado 
      WHERE usuario_id= '35512'
      ORDER BY fecha_hora DESC
      LIMIT 9
     ) ce
ORDER BY fecha_hora ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...