разбиение на страницы набора клавиш для конкретной страницы перехода - PullRequest
0 голосов
/ 03 ноября 2019

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

скажем, этот запрос для первой страницы, SELECT * FROM nameTable ORDER BY ASC id LIMIT 10

, и мы сохраняем последний идентификатор на N

, а затем на следующем SELECT * FROM nameTable WHERE id > N ORDER BY ASC id LIMIT 10

а если для предыдущего просто использовать WHERE id < N?

как насчет того, если в Клиенте хотите перейти на страницу 10 или вернуться на 3 страницы ?? Можете ли вы все сказать мне, как это сделать, и это возможно, используя keyset?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2019

Используя нумерацию клавиш набора , вы не можете перейти на заданную страницу .

Вы можете просто перейти к сначала, последнему предыдущему и следующему .

Как объяснил Лоренц, вы все еще можете переместить / пропустить число "страниц" со своего текущего стенда, но я не совсем уверен, каков будет вариант его использования.

Основной целью разбиения на наборы ключей является избегать использования предела смещения / пропуска для больших наборов данных , но если вы хотите перейти на конкретную страницу, вы должны сместить/ пропустить ключевые слова.

Обычно Следующая и предыдущая функциональность Использование хорошего поиска дает достаточно хороший пользовательский опыт:)

0 голосов
/ 04 ноября 2019

Если вы хотите перейти на предыдущую страницу, запомните нижнюю границу для id, а также верхнюю границу.

Чтобы прокрутить 3 страницы вперед, используйте LIMIT 30 OFFSET 20 вместо LIMIT 10. Чтобы перейти на страницу X, рассчитайте разницу между X и текущей страницей и умножьте эту разницу на количество строк на странице.

Это все довольно просто.

...