2011-04-23 150 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