【发布时间】:2021-05-23 09:08:26
【问题描述】:
我有一个数据库表 reviews 和 id、rating,其中 id 是自动递增的,而 rating 是 0 到 100 之间的整数。
我正在尝试在 GraphQL API 中创建基于光标的分页,但我正在努力为 hasPreviousPage 和 hasNextPage 创建必要的查询。
这是我的数据:
ID: 1, RATING: 50
ID: 2, RATING: 80
ID: 3, RATING: 20
ID: 4, RATING: 40
ID: 5, RATING: 60
以下是 GQL 查询示例:
reviews(first: 3)
返回
ID: 1, RATING: 50
ID: 2, RATING: 80
ID: 3, RATING: 20
带有页面信息
hasPreviousPage: false
hasNextPage: true
pageInfo 的查询是
hasPreviousPage = SELECT COUNT(*) > 0 FROM reviews WHERE id < 0;
hasNextPage = SELECT COUNT(*) > 0 FROM reviews WHERE id > 3;
我的问题是按评级排序时出现的。 进行与之前类似的查询:
reviews(sort: "rating", first: 3)
返回
ID: 3, RATING: 20
ID: 4, RATING: 40
ID: 1, RATING: 50
带有页面信息
hasPreviousPage: false
hasNextPage: true
但是如何像以前一样创建hasPreviousPage 和hasNextPage 的查询?
hasPreviousPage = SELECT COUNT(*) > 0 FROM reviews WHERE ???
hasNextPage = SELECT COUNT(*) > 0 FROM reviews WHERE ???
在这种情况下,WHERE 子句应该是什么?子查询是否需要更复杂的查询?我不确定我错过了什么。
【问题讨论】:
标签: sql postgresql graphql database-cursor