此代码可用于从mysql中的表中选择前十条记录。如何从具有1000条记录的表中显示最后十条记录。我想以asc顺序显示名称,不想更改它。
SELECT name, cost FROM test orderby name asc LIMIT 10 ;
答案 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