powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пагинация по курсору и сортировка
3 сообщений из 3, страница 1 из 1
Пагинация по курсору и сортировка
    #39721495
Здравствуйте, помогите разобраться или направьте в нужную сторону.
Задача: реализовать пагинация по курсору.

SELCT * FROM foo WHERE id > n ORDER BY id limit 10
И в последующие запросы мы ставим последний id.

Продолжим, задача: добавить сортировку например по дате.
И вот на этом месте я торможу.

SELCT * FROM foo WHERE id > n ORDER BY date DESC, id limit 10

Как быть теперь, все id перемешались.
...
Рейтинг: 0 / 0
Пагинация по курсору и сортировка
    #39721651
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и должно быть - изменение сортировки разваливает пагинацию.
Можно, конечно, фиксировать параметры текущей записи, и при смене сортировки автоматом скроллиться до этой записи в новой сортировке...
...
Рейтинг: 0 / 0
Пагинация по курсору и сортировка
    #39721751
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если поле date удастся сделать уникальным, то принципиально ничего не меняется:
Код: sql
1.
SELECT * FROM foo WHERE date > prev_date ORDER BY date limit 10



Если не удастся, то посложнее:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT * FROM
(
  SELECT * FROM foo WHERE date = prev_date AND id > n ORDER BY id limit 10
  UNION ALL
  SELECT * FROM foo WHERE date > prev_date ORDER BY date, id limit 10
) t
ORDER BY date, id limit 10


Если таскать предыдущую дату сложно, то можно подставить вместо нее выборку из таблицы по предыдущему идентификатору n.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пагинация по курсору и сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]