MySQL限制范围

时间:2011-04-23 22:45:24

标签: mysql sql sql-limit

SELECT name FROM mydb ORDER BY score DESC LIMIT 10;

上面的查询将返回前10个排名。

如何修改LIMIT,或者是否有另一种语法来查询排名第10的排名?

5 个答案:

答案 0 :(得分:34)

这是非常基本的东西。你应该使用:

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

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

两个参数10,10是(偏移,限制),因此这将检索行11-20 9,11将需要获得10-20级。

答案 1 :(得分:13)

使用offset来澄清查询。

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

答案 2 :(得分:3)

限制还有一个偏移参数

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

答案 3 :(得分: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;

答案 4 :(得分: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