如何使用表主id在postgres中进行分页

时间:2018-04-29 19:12:46

标签: postgresql

我有帖子表,主键是id整数,也是整数的排名字段。我希望能够使用帖子ID进行分页。

即。如果我有以下帖子ID [1,2,3,5,6,8,10,12]

我想在我的api / api /帖子中说?postId = 3& page = 2& size = 3(假设页面从1开始)

我得到回复6,8和10作为回应。

我有一个网站的目标,列出帖子,用户分享帖子,链接基本上打开相同的页面列表,但第一个帖子是被点击的帖子,下一个/后续帖子将是下一个帖子顺序。

1 个答案:

答案 0 :(得分:0)

这是从表中检索特定有序集的语句。

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;