数据库分页数据被业务代码过滤后不足个数问题

发布于 2022-09-05 22:46:33 字数 398 浏览 22 评论 0

如题:
考虑场景:请求page=1&row=10(请求第一页,每页10条)
数据库查询后得到id区间[0,9]的数据,并且得到total值100条。

由于业务需要,得到的列表需要过滤各种其他条件,过滤后只剩7条。
结果一页数据并不满足10条,而且数据库中查出的total值也是未经过筛选,并不准确。
有考虑过以下方式:

  • 数据库添加字段或增加关系表来使得一次查询得到最终正确分页结果(业务特别复杂的情况下是否可取?)
  • 不足个数循环获取,直到满10条为止
  • redis维护一个zsort保存所有过滤过的id列表,再根据此列表分页查询具体信息

经验有限,想知道业内有哪些成熟的解决方案,或者大家在实际场景怎么处理的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蘑菇王子 2022-09-12 22:46:33

如果是第二种的话,可以考虑多传入一个参数,表示当前查询到第几条了,比如循环了3词才满足十条,而且是查询到27条的时候才满足,将27这个数字传回给前台,前台再下一页的时候传入27,后台就知道从哪开始继续了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文