PHP SQL结果集数量限制与范围查询问题求助
分块处理数据库查询结果解决超时问题
在PHP脚本从themoviedb抓取信息时,因一次性查询结果量过大导致超时,需要分块处理查询结果。
原查询代码:
$Posts = $this->db->from('posts')->where('type','serie')->all();
此前尝试的无效操作:
- 使用
limit(250)或limit('250')限制返回250条结果,无效果 - 尝试
limit('1','250')获取251-500条范围的结果,未成功
有效解决方案:
该数据库查询构建器的limit方法采用**limit(偏移量, 结果数量)**的参数顺序,具体用法示例:
$Posts = $this->db->from('posts')->where('type','serie')->limit(0,0)->all();
参数说明:
- 第一个参数:offset(偏移量,即跳过前面指定条数的数据)
- 第二个参数:limit(要获取的结果条数)
示例用法:
limit(10,5):跳过前10条数据,获取接下来的5条,对应第11-15条结果- 分块处理时,可按如下逻辑循环查询:
- 第一次查询:
limit(0,250)→ 获取第1-250条数据 - 第二次查询:
limit(250,250)→ 获取第251-500条数据 - 后续每次将偏移量累加250,直到查询返回空结果时停止循环
- 第一次查询:
内容的提问来源于stack exchange,提问作者Paulamonopoly
相关产品推荐
相关产品推荐

