views:

48

answers:

3

I have a table with dates in "Aug 23, 2009" format and 5 values, so that it looks like this

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

So I need a query that will give me only the most recent (bottom) 3 entries. Should I setup some query by the date or just set a limit to the last 3 rows? I tried doing a subquery with a limit, but my version of MySQL does not support LIMIT in subquery, and to my knowledge there is no way to do a negative limit to grab the last x number of rows.

A: 

Just change the order by to do your LIMIT.

So, in other words, add

ORDER BY `date` DESC

to your select statement. You'll then be a ble to limit the return results to whatever row count you need.

Michael Todd
+1  A: 
select *
from table 
order by Date desc
limit 0, 3
RedFilter
+1  A: 

Can MySQl do TOP ? If so

   Select Top 3 * From Table
   Order By Date Desc
Charles Bretana
LIMIT is the way TOP is done in MySql.
Michael Todd
@Michael, Thx!
Charles Bretana