Проблема с LIMIT

hussar

In code we trust!
Проблема с LIMIT

Всем доброе время суток!!!

У меня на странице происходит выбор из базы по 30 позиций, которые в свою очередь сортируются по нескольким параметрам (допустим по имени или id и т.д.)
Запрос примерно такой:

SELECT * FROM ..... ORDER BY ...... LIMIT 61, 30;

Я начинаю сортировать допустим по имени и тут начинается проблема. При запросе с DESC скрипт мне отдает одни записи, а при запросе с ASC абсолютно другие.

В мануале нашел про LIMIT вот такую вещь:
Если LIMIT # используется с ORDER BY, MySQL закончит сортировку, как только найдет первые # строк, вместо того, чтобы сортировать всю таблицу.

Из чего абсолютно непонятно почему так происходит у меня в скрипте.

Всем заранее спасибо за помощь!
 

Фанат

oncle terrible
Команда форума
выбор из базы по 30 позиций, которые в свою очередь сортируются по нескольким параметрам
все наоборот.
база сортируется, а потом уже накладывается лимит.
О чем тебе ясно написано в документации.
А если подумать немножко самостоятельно, то можно и самому догадаться, что такое поведение лимита, которое тебе представляется, явлется абсолютно бессмысленным.
 

hussar

In code we trust!
Мне нужно добится чтобы сортировка происходила внутри выбраных 30 позиций. И я пытаюсь понять можно ли это сделать с помощью запроса к БД.
 

hussar

In code we trust!
Спасибо.
Только я не совсем понимаю почему такое поведение базы бессмысленное. Если можно объяснить по-подробнее?! :)
 

Фанат

oncle terrible
Команда форума
Потому, что в базе нету никакого порядка записей. И - как следствие - никакой 30-й или 60-й.
Это самые азы работы с базой данных.
А порядок бывает только в конкретной выборке. С условиями и сортировками.
 

.des.

Поставил пиво кому надо ;-)
Код:
(
  SELECT * 
  FROM .....  
  ORDER BY .... 
  LIMIT 61, 30
) 
ORDER BY ....
Если конечно версия mysql позволит.
Только я не совсем понимаю почему такое поведение базы бессмысленное. Если можно объяснить по-подробнее?!
Бесмыссленно как раз ваше желание - не было бы никакой возможности выбрать ограниченую часть полностью отсортированной выборки.
 
Сверху