Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Как сделать limit хитрым? (Cruiser) 30/04/2004 - 14:55:01
      Re: Как сделать limit хитрым? (dEp) 30/04/2004 - 15:08:38
      Re: Как сделать limit хитрым? (Cruiser) 30/04/2004 - 16:13:08
      Re: Как сделать limit хитрым? (dEp) 30/04/2004 - 16:57:45
      Re: Как сделать limit хитрым? (Cruiser) 30/04/2004 - 17:37:05
      Re: Как сделать limit хитрым? (Dinky) 30/04/2004 - 17:52:45
      Re: Если есть лимит, значит есть сортировка (Sam) 02/05/2004 - 01:37:26
      Re: немного о том, как она работает (dEp) 02/05/2004 - 14:00:51

> Original message text:
> From: Cruiser - 30/04/2004 - 14:55:01
> Subject:Как сделать limit хитрым?
> -----------------
> Можно ли сделать выборку с лимитом (limit 0, 10) допустим что бы лимит отрабатывал начиная с определеного id 10 записей.
>
> Схематично (limit (запись с определенным id, 10). Как можно сделать?
>


From: dEp - 02/05/2004 - 14:00:51
Subject:немного о том, как она работает
-----------------
Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1):
mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

Если задан один аргумент, то он показывает максимальное количество возвращаемых строк:
mysql> SELECT * FROM table LIMIT 5; # возвращает первых 5 строк

Другими словами, LIMIT n эквивалентно LIMIT 0,n.

В некоторых случаях, когда используется LIMIT # и не используется HAVING, MySQL будет выполнять запрос несколько иначе:

Если при помощи LIMIT выбираются только несколько строк, MySQL будет использовать индексы в тех некоторых случаях, когда он обычно предпочел бы делать полное сканирование таблицы.
Если LIMIT # используется с ORDER BY, MySQL закончит сортировку, как только найдет первые # строк, вместо того, чтобы сортировать всю таблицу.
При сочетании LIMIT # с DISTINCT MySQL остановится, как только найдет # уникальных строк.
В некоторых случаях группировка GROUP BY может быть выполнена путем упорядоченного считывания ключа (или путем выполнения сортировки по ключу) и последующего вычисления итогового результата пока не изменится значение ключа. В этом случае LIMIT # не будет вычислять какие-либо ненужные предложения GROUP BY.
После того как MySQL пошлет первые # строк клиенту, он прервет выполнение запроса (если не используется SQL_CALC_FOUND_ROWS).
LIMIT 0 всегда будет быстро возвращать пустую выборку. Эта команда полезна для проверки запроса и получения типов столбцов результата.
Если сервер для выполнения запроса использует временные таблицы, LIMIT # применяется для вычисления того, сколько для них потребуется места.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
14435



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |