数据库分页数据被业务代码过滤后不足个数问题
如题:
考虑场景:请求page=1&row=10(请求第一页,每页10条)
数据库查询后得到id区间[0,9]的数据,并且得到total值100条。
由于业务需要,得到的列表需要过滤各种其他条件,过滤后只剩7条。
结果一页数据并不满足10条,而且数据库中查出的total值也是未经过筛选,并不准确。
有考虑过以下方式:
- 数据库添加字段或增加关系表来使得一次查询得到最终正确分页结果(业务特别复杂的情况下是否可取?)
- 不足个数循环获取,直到满10条为止
- redis维护一个zsort保存所有过滤过的id列表,再根据此列表分页查询具体信息
经验有限,想知道业内有哪些成熟的解决方案,或者大家在实际场景怎么处理的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果是第二种的话,可以考虑多传入一个参数,表示当前查询到第几条了,比如循环了3词才满足十条,而且是查询到27条的时候才满足,将27这个数字传回给前台,前台再下一页的时候传入27,后台就知道从哪开始继续了。