Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to select last N records from a table in mysql

Tags:

mysql

This code can be used to select the first ten records from a table in mysql. How can I do the same to display last ten records from a table which has 1000 records. I want to display the name in asc order dont want to change that.

   SELECT name, cost FROM test orderby name asc LIMIT 10 ;
like image 684
Murthy Avatar asked Oct 19 '25 12:10

Murthy


2 Answers

SELECT q.name, q.cost
    FROM (SELECT name, cost
              FROM test
              ORDER BY name DESC LIMIT 10) q
    ORDER BY q.name ASC;
like image 177
Joe Stefanelli Avatar answered Oct 21 '25 01:10

Joe Stefanelli


The LIMIT clause can take two parameters, which will provide an offset:

The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be nonnegative integer constants (except when using prepared statements).

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter. This statement retrieves all rows from the 96th row to the last:

SELECT * FROM tbl LIMIT 95,18446744073709551615; With one argument, the value specifies the number of rows to return from the beginning of the result set:

SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows

http://dev.mysql.com/doc/refman/5.0/en/select.html

So with this:

SELECT name, cost FROM test orderby name asc LIMIT 990, 10;
like image 31
danielrsmith Avatar answered Oct 21 '25 00:10

danielrsmith