MySQL предел диапазона - PullRequest
       16

MySQL предел диапазона

17 голосов
/ 24 апреля 2011
SELECT name FROM mydb ORDER BY score DESC LIMIT 10;

Приведенный выше запрос вернет первые 10 рангов.

Как изменить LIMIT, или, может быть, есть другой синтаксис для запроса от 10-го ранга до 20-го ранга?

Ответы [ 5 ]

35 голосов
/ 24 апреля 2011

Это действительно простые вещи.Вы должны использовать:

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-й ранг.

13 голосов
/ 24 апреля 2011

Используйте offset для уточнения запроса.

SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
3 голосов
/ 24 апреля 2011

Предел также имеет параметр смещения

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
1 голос
/ 20 октября 2016

вы можете использовать смещение

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 голос
/ 24 апреля 2011
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;
...