更新多行或在数据库中记录

Ire*_*ing 4 php mysql database

如果我有这样的脚本:

$sql = "SELECT * FROM table WHERE Status='0'";
$query = mysql_query($sql);

    while ($row = mysql_fetch_array($query)) 
       $id = $row['ID'];

           //.........

       if($process->send()) { //after sent
         mysql_query("UPDATE table 
                      SET Status ='1' 
                      WHERE ID = '$id'"); 
       }
    }
Run Code Online (Sandbox Code Playgroud)

所以当进程完成时它会更新每一行.但是如果我有超过一万条记录Status='0',那么更新会变慢.

那么更新记录有更好的方法吗?我无法使用单个查询更新所有内容,因为我需要知道每个进程是否已完成.

谢谢.

Tom*_*rdt 10

将所有成功的数据添加到数组中,然后同时提交所有这些数据.

if ($process->send()) {
    $done[] = $id;
}
Run Code Online (Sandbox Code Playgroud)

稍后:

mysql_query('UPDATE table SET Status=1 WHERE ID IN ('.implode(',', $done).')');
Run Code Online (Sandbox Code Playgroud)