素材牛VIP会员
数据库分页数据被业务代码过滤后不足个数问题
 25***om  分类:PHP代码  人气:2174  回帖:1  发布于6年前 收藏

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

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

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

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

 标签:redis集群php

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv4 码徒
阁***起 其它 6年前#1
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取