Задать вопрос
@mapleart

Как выполнить SQL запрос страницы если было смещение?

Здравствуйте. У меня есть выборка постов из базы отсортирированы они по рейтингу и ID.

Я сделал Ajax подгрузку. И делаю выборку по 20 на страницу. И с каждой подгрузкой увеличиваю страницу на 1.

Возникла проблема, когда появились новые посты которые находятся выше, происходит смещение на кол-во новых постов. Если например, добавили 2 новых поста и я начинаю подгружать то повторится 2 последних поста.

Что и понятно. А как тогда лучше сделать?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
И это как раз вторая причина почему для пагинации не надо использовать offset. (первая причина - производительность offset)
Передавайте значения сортировки последнего видимого элемента списка и запрашивайте продолжен списка, а не offset.
https://use-the-index-luke.com/sql/partial-results...
Ответ написан
Комментировать
proudmore
@proudmore
Получайте количество записей в выборке перед каждым запросом, и рассчитывайте пагинацию с учетом новых данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы