25
SELECT name FROM mydb ORDER BY score DESC LIMIT 10;

上面的查询将返回前 10 个等级。

如何修改LIMIT,或者是否有另一种语法来查询第 10 位到第 20 位?

4

5 回答 5

59

你应该使用:

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10;

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

两个参数 10,10 是 (Offset, Limit),因此这将检索第 11-20 行。
需要 9,11 才能获得第 10 - 20 位。

于 2011-04-23T22:49:06.930 回答
20

用于offset澄清查询。

SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
于 2011-04-23T23:25:40.437 回答
5

Limit 还有一个 offset 参数

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
于 2011-04-23T22:49:01.927 回答
1
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;
于 2011-04-23T22:55:04.587 回答
1

你可以使用偏移量

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

这里,offset表示接下来 10 个数据将从哪里显示。

你也可以在下面使用:

SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10
于 2016-10-20T02:19:10.643 回答