php 循环分批量获取数据库数据

假设每次循环获取5条数据:

//方法一:(数据量大的后面查询速度会变慢 limit 10000,5)
$flag = true;
$limit = 0;
while($flag){
   $sql = "select id,name from table limit {$limit} , 5";
   $data = $db->select($sql);
   //todo 你的逻辑
   if(!$data){//数据为空,直接停止循环
      $flag = false;
      break;
   }
   $limit += 5;//每次获取后面5条,直至数据查询为空.    
}
//方法二:
$id = 0;
$limit= 5;
while(true){
    $sql = "select id,name from table where id > {$id} limit {$limit}";
    $data = $db->select($sql);
    if(!$data){
        break;
    }
    //todo 你的逻辑
    if(count($data)<$limit){
       break; 
    }
    $id = $data[$limit-1]['id'];//获取最后一次查询的Id用于下次对比
}

 

你可能感兴趣的:(PHP)