2011-04-23 152 views
12
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 

查询将返回前10排名,MySQL的限制范围

如何修改LIMIT,或许有另一种语法来查询10级直到20级?

回答

3

限制也有一个偏移参数

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10 
0
SET @rank = 0; 
SELECT rank, name, score 
FROM (
    SELECT @rank := @rank +1 AS rank, name, score 
    FROM mydb 
    ORDER BY score DESC 
    LIMIT 100 
) X 
WHERE rank >= 10; 
10

使用offset澄清查询。

SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 
+0

OFFSET绝对是一个更好的主意时,你必须构建在代码查询。 – qasimzee 2015-03-24 17:11:57

1

您可以使用偏移

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 

这里,偏移表明,从那里未来10个数据将显示。

您还可以使用如下:

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10 
+1

请[不要提供已被其他答案覆盖的解决方案](// meta.stackexchange.com/a/192293/269535)。如果你同意另一个答案,那么当你有足够的[声誉](// stackoverflow.com/help/whats-reputation)时,你可以[upvote it](// stackoverflow.com/privileges/vote-up),这是堆栈溢出方式表示您的同意。另见[回答]。 – 2016-10-20 03:08:36