Нужно вытащить последние х количество строк на основе даты - PullRequest
1 голос
/ 27 августа 2009

У меня есть таблица с датами в формате «23 августа 2009 года» и пятью значениями, чтобы она выглядела так

SELECT * FROM table;
Date         | Total | V1 | V2 | V3 | V4   
Aug 21, 2009 | 41    | 23 | 8  | 8  | 2
Aug 22, 2009 | 39    | 22 | 8  | 7  | 2
Aug 23, 2009 | 35    | 20 | 6  | 7  | 2
Aug 24, 2009 | 34    | 20 | 6  | 6  | 2
Aug 25, 2009 | 32    | 19 | 5  | 6  | 2
Aug 26, 2009 | 31    | 19 | 5  | 5  | 2
Aug 27, 2009 | 30    | 19 | 5  | 5  | 1

Так что мне нужен запрос, который даст мне только самые последние (нижние) 3 записи. Должен ли я установить какой-либо запрос по дате или просто установить ограничение на последние 3 строки? Я пытался выполнить подзапрос с ограничением, но моя версия MySQL не поддерживает LIMIT в подзапросе, и, насколько мне известно, нет способа установить отрицательный предел для получения последнего x количества строк.

Ответы [ 4 ]

2 голосов
/ 27 августа 2009
select *
from table 
order by Date desc
limit 0, 3
1 голос
/ 27 августа 2009

Может ли MySQl делать ТОП? Если так

   Select Top 3 * From Table
   Order By Date Desc
0 голосов
/ 06 января 2011

Вам не нужен подзапрос, просто используйте предложение LIMIT в вашем операторе SELECT и добавьте предложение DESC ORDER BY 'date'. Обычно плохая идея использовать имена столбцов, такие как «DATE» (или «DATETIME»), потому что разные базы данных могут использовать их как зарезервированные слова.

0 голосов
/ 27 августа 2009

Просто измените порядок, чтобы сделать свой ЛИМИТ.

Итак, другими словами, добавьте

ORDER BY `date` DESC 

на ваше выбранное утверждение. Тогда вы сможете ограничить возвращаемые результаты любым количеством строк, которое вам нужно.

...