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

如何在mysql中从表中选择最后N条记录,mysql,Mysql,此代码可用于从mysql中的表中选择前十条记录。对于一个包含1000条记录的表,如何显示最后10条记录。我想按asc顺序显示名称,但不想更改 SELECT name, cost FROM test orderby name asc LIMIT 10 ; LIMIT子句可以采用两个参数,这将提供一个偏移量: LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 除了使用 准备好的发言 对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的

此代码可用于从mysql中的表中选择前十条记录。对于一个包含1000条记录的表,如何显示最后10条记录。我想按asc顺序显示名称,但不想更改

   SELECT name, cost FROM test orderby name asc LIMIT 10 ;
LIMIT子句可以采用两个参数,这将提供一个偏移量:

LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 除了使用 准备好的发言

对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0而不是1:

从tbl限制5,10中选择*;检索第6-15行以检索所有 从某个偏移量到结果集末尾的行,您可以 第二个参数使用一些大的数字。此声明 检索从第96行到最后一行的所有行:

从tbl LIMIT 9518446744073709551615中选择*;有一个论点, 该值指定从开始返回的行数 结果集:

从tbl LIMIT 5中选择*;检索前5行

因此:

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

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


从“按列名称排序”中选择“按列名称排序”中的“top N*”,从“表名称”中选择“表名称”

它是按名称排序,或者按插入日期/唯一id。这取决于您在什么意义上指的是最后N条记录-按名称或id、日期或成本或其他任何顺序?插入一行时,表现在总共有1001行,会发生什么情况?
SELECT q.name, q.cost
    FROM (SELECT name, cost
              FROM test
              ORDER BY name DESC LIMIT 10) q
    ORDER BY q.name ASC;
SELECT name, cost FROM test orderby name asc LIMIT 990, 10;