MySQL PHP 如何分批量的从数据库循环读取数据?

假如每次从数据库读取五条,该怎么一直让程序循环下去,直到全都循环完成。
加个

$a = true;
//然后用while循环
//在数据库里设计个字段,为判断有没有取出来过这条数据的字段,默认为没取出来过
//然后用foreach把每次取出来的每条数据都标记为已取出过,直到所有数据都被标记为已取出过来,循环停止。

这样的逻辑对吗?

阅读 12.2k
12 个回答
<?php

$read  =  ture;
$limit =  0;
while($read)
{    

    $sql = "select id,name from table limit {$limit},5";
    $data = $db->select($sql); 
    //todo 你的业务逻辑
    
    if(!data)
    {    
        $read = false;
        break;数据为空,直接停止了循环
    }
   
    $limit += 5;每次获取后面5条,直至数据查询为空.

}

$id = 0;
while(true){
   $arr = $db->query('select id,name from users where id>'.$id.' limit 5');
   if(count($arr) == 0) {
     break;
   }
   // 处理逻辑 
   
  if(count($arr) < 5) {
     break;
   }
   $id = $arr[4]['id']; // 取最后一个id
}

你用limit呀。然后记录id,直到id大于maxid不就可以了么???

可以用分页查询的原理啊。。

$count = '100';//总条数
$strip = 0;
$num = $count/5;//循环多少次
for($i=1;$i<=$num;$i++)
{
 $sql = "select * from `table` order by id limit ".$strip.",5";
 $strip += 5;
}

最好for循环里面sleep下,让cpu休息一下

我在想,用foreach while循环,和一次性查能有多少性能差异? 多次查询数据库,不如一次查出来?

新手上路,请多包涵

I will suggest you using a Loop when enters the name. Make sure to use ForEach Loop. Moreover let me tell you that you can Check Chase Verify.

新手上路,请多包涵

I have read your article and found some information that will help me to increase my knowledge. however thanks for sharing your idea with us. You can get more info here Super Bowl Live Stream

WordPress uses PHP, with SQL queries in PHP markup to store and export data from MySQL databases. For example, if you are a member of a site that uses WordPress's management system, SQL is used to log in, obtain a membership ID, verify that you have an active membership, and ensure that the front-end is displaying. Correct profile data.
PHP and SQL work in parallel in WordPress, helping you create dynamic content based on a variety of factors, such as your IDs and user roles. This allows you to do many things like hiding or show content to specific users, like admins, editors or subscribers. These tasks can not be completed if SQL and MySQL.
192.168.1.1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题