我目前正在阅读PostgreSQL分页指南here。现在,我在底部附近使用搜索方法,如下所示:
SELECT * FROM news WHERE category_id = 1234 AND (date, id) < (prev_date, prev_id)
ORDER BY date DESC, id DESC LIMIT 10;
在该查询运行之后,我需要确定是否需要添加&#39; next&#39;链接到该页面,我正在通过获取其日期和ID小于查询返回的日期和ID的所有行的计数。我需要一个我正在使用的无限滚动插件的下一个链接。有没有更好的方法来确定查询完成后是否还有行?
答案 0 :(得分:1)
一种简单的方法是实际要求11行,即使你显示10行。如果第11行存在,显然有更多数据,你需要下一个链接。
这样您就不必要求计数,只需运行一个查询。然后,如果数据没有真正改变,那么获得计数一次并缓存它可能会更有效率。它可能有点容易出错。
负面的是你可能会检索多10%的数据,这取决于表结构可能会也可能不会影响性能。