Как сделать нумерацию страниц в postgres, используя первичный идентификатор таблицы - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть таблица сообщений, первичный ключ - это целое число id, а также поле ранжирования, которое также является целым числом. Я хочу иметь возможность делать нумерацию страниц, используя идентификатор сообщения.

т.е. если у меня есть следующие идентификаторы сообщений [1, 2, 3, 5, 6, 8, 10, 12]

Я хочу сказать в моих api / api / posts? PostId = 3 & page = 2 & size = 3 (при условии, что страница начинается с 1)

и я получаю взамен 6, 8 и 10 в ответ.

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

1 Ответ

0 голосов
/ 29 апреля 2018

Это оператор для извлечения определенного упорядоченного набора из таблицы.

SELECT *
FROM Posts_Table
LIMIT [firstPostToBeShown], [firstPostToBeShown + pagesize]

Если вы хотите, чтобы ваш API возвращал 10 страниц одним запросом.

originalpostid integer := [originalpostid];
pagesize INT := [pagesize];
page INT := [numOfPage];
loopindex INT := 1;
localfirstpost := originalpostid;

WHILE loopindex <= page
BEGIN
    SELECT *
    FROM Posts_Table
    LIMIT  originalpostid , originalpostid+(loopindex*pagesize)

SET loopindex = loopindex + 1;
SET originalpostid = originalpostid + (loopindex*pagesize) + 1 ;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...