如何从mysql中的表中选择最后N条记录

时间:2012-01-10 16:34:44

标签: mysql

此代码可用于从mysql中的表中选择前十条记录。如何从具有1000条记录的表中显示最后十条记录。我想以asc顺序显示名称,不想更改它。

   SELECT name, cost FROM test orderby name asc LIMIT 10 ;

4 个答案:

答案 0 :(得分:6)

SELECT q.name, q.cost
    FROM (SELECT name, cost
              FROM test
              ORDER BY name DESC LIMIT 10) q
    ORDER BY q.name ASC;

答案 1 :(得分:3)

LIMIT子句可以带两个参数,它们将提供一个偏移量:

  

LIMIT子句可用于约束返回的行数   通过SELECT语句。 LIMIT需要一个或两个数字参数,   必须都是非负整数常量(使用时除外)   准备好的陈述)。

     

使用两个参数,第一个参数指定的偏移量   第一行返回,第二行指定最大数量   要返回的行。初始行的偏移量为0(不是1):

     

SELECT * FROM tbl LIMIT 5,10; #检索行6-15检索所有行   从某个偏移量到结果集末尾的行,即可   使用一些大数字作为第二个参数。这个说法   检索从第96行到最后一行的所有行:

     

SELECT * FROM tbl LIMIT 95,18446744073709551615;有一个论点,   该值指定从头开始返回的行数   结果集:

     

SELECT * FROM tbl LIMIT 5; #检索前5行

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

所以这个:

SELECT name, cost FROM test orderby name asc LIMIT 990, 10;

答案 2 :(得分:2)

SELECT name, cost
FROM (SELECT name, cost FROM test orderby name desc LIMIT 10) as test
ORDER BY name asc;

答案 3 :(得分:0)

您可以使用ROW_NUMBER()子句,这将对您有所帮助

选择顶部“N”*(选择ROW_NUMBER()OVER(按Col_Name desc排序)为RowNo,* from Table_Name)Table_Name