Выборка из бд mysql в заданном направлении
#6

Quote:
Originally Posted by Eims
Посмотреть сообщение
Стоило озвучить то, какие данные у тебя есть и что ты хочешь добиться в результате запроса. Вполне возможно, что есть более оптимальный вариант.

Хотя если задачей является "развернуть" результат, то что мешает сделать это прямо во время его обработки? То бишь:
PHP код:
new i;
cache_get_row_count(i);
for(
-= 1!= -1i--)
{
    ...

Привет Еймс, да, ты прав. Спасибо за ответ. Я пытаюсь сделать банальное постраничное листание. Звучит банально, но в реализацию кнопки "Назад" я никак не мог въехать. Кнопку "Далее "я получал методом выборки последнего полученного индекса ... WHERE id < last_index ORDER BY last_index DESC, а вот с "Назад" такая практика не проходила. Запрос WHERE id > first_index ORDER BY first_index DESC ясное дело выводил от максимального числа в таблице, что не нарушало по идее заданное условие, но не совпадало с тем, что хотел я. Говоря конкретно я дико ступил.
first_index получен первым результатом на странице. last_index соответственно последним. Как рамки для вывода результата. Получать от и до.

Про переворот результата в коде я догадывался, но хотелось возложить эту задача на БД.
Щас сотру весь этот бред в коде и напишу по новой.


UPD:

Сделал с помощью LIMIT отступ и сколько элементов выводить, но есть вопрос. Чем больше записей в таблице, тем большее время бд будет затрачивать на отступ. Выход ли делать подобное через LIMIT ?

Цитата:

Quote:

Выборки со смещением (LIMIT/OFFSET) могут работать очень медленно при больших значениях смещений. Это происходит по причине того, что MySQL перебирает и отбрасывает все строки результата, пока их количество не будет равно значению OFFSET. Например:

SELECT * FROM articles ORDER BY id LIMIT 20000, 20
Такой запрос будет использоваться для показа 1000й страницы статей (по 20 статей на страницу). В таком случае, MySQL переберет и отбросит 20 тыс. записей до того, как вернет 20 нужных нам. Естественно, с ростом номера страницы, запрос будет работать все медленнее.

Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)