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




MySQL.RU - Webboard



Вернуться
Select backward (Mike Maverick) 21/09/2002 - 18:51:10
      Re: Select backward (Bogdan) 21/09/2002 - 19:40:14
      Re: Select backward (Mike Maverick) 22/09/2002 - 00:17:34
      Re: Select backward (stalker) 23/09/2002 - 12:13:52
      Re: Select backward (Mike Maverick) 23/09/2002 - 17:37:18
      Re: Select backward (vi.k) 24/09/2002 - 08:44:01
      Re: Select backward (Mike Maverick) 24/09/2002 - 12:51:17
      Re: Select backward (vi.k) 26/09/2002 - 05:24:51
      Re: Select backward (vi.k) 26/09/2002 - 10:24:27
      Re: Select backward (walrus) 28/09/2002 - 10:59:46

> Original message text:
> From: Mike Maverick - 21/09/2002 - 18:51:10
> Subject:Select backward
> -----------------
> Голову сломал, чтобы просматривать таблицу в обратном направлении.
>
> Задача такая: есть таблица с проиндексированым текстовым полем.
> Как зная текущее значение поля, выбрать _предыдущую_ запись?
> Для следующей все понятно: "select keyname from table where keyname>'CurrentKeyName' order by KeyName ASC limit 10"
>
> Если так же делать для предыдущей, но "KN<Current DESC limit 10", то выбирается все с начала таблицы, а потом выводятся десять последних строк.
>
> Я сейчас нахожу предыдущую начальную букву:
> loop
> PrevChar = CurChar-1
> select count(*) where kn like 'PrevChar%'
> выйти если count(*)>0
> выйти если начало таблицы
> end
> и делаю запрос "select kn where kn>PreviousChar AND kn<CurrentKeyName order by kn DESC limit 10"
>
> однако на сильно больших таблицах, где строк на одну букву будет много, это тоже сломается.
>
> Что делать?
>


From: walrus - 28/09/2002 - 10:59:46
Subject:Select backward
-----------------
Мысли появляются после просмотра explain твоих запросов.

там где order by - появляется "filesort" - то есть создается временных файл который сортируется.


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

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

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



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