需要根据日期提取最后x行

时间:2009-08-27 18:45:26

标签: mysql date limit rows

我有一张表格,其日期为“2009年8月23日”格式和5个值,所以它看起来像这样

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 个答案:

答案 0 :(得分:2)

select *
from table 
order by Date desc
limit 0, 3

答案 1 :(得分:1)

MySQl可以做TOP吗?如果是的话

   Select Top 3 * From Table
   Order By Date Desc

答案 2 :(得分:0)

只需更改订单即可进行限制。

所以,换句话说,添加

ORDER BY `date` DESC 

到你的select语句。然后,您可以将返回结果限制为您需要的任何行数。

答案 3 :(得分:0)

您不需要子查询,只需在SELECT语句中使用LIMIT子句,并添加ORDER BY'date'DESC子句。通常,使用诸如“DATE”(或“DATETIME”)之类的列名称是一个坏主意,因为不同的数据库可能会将这些列用作保留字。