web-dev-qa-db-ja.com

MySQLの制限範囲

SELECT name FROM mydb ORDER BY score DESC LIMIT 10;

上記のクエリは、最初の10のランクを返します。

LIMITを変更する方法、または10番目から20番目までのランクをクエリする別の構文はありますか?

21
theHack

これは本当に基本的なものです。あなたは使うべきです:

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

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

2つの引数10,10は(オフセット、制限)なので、行11〜20を取得します。
9,11 10から20ランクを獲得する必要があります。

44
James C

offsetを使用してクエリを明確にします。

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

制限にはオフセットパラメータもあります

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
5
Nicola Cossu

offsetを使用できます

名前をmydbから選択ORDER BYスコアDESC LIMIT 10オフセット10 

ここでは、offsetは、次の10個のデータが表示される場所を示します。

以下も使用できます:

名前をmydbから選択してくださいORDER BYスコアDESC LIMIT 10、10 
1
Parvej Ahmed
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;
1
Christo