选择限制和更新表。限制不正常。 SQL

时间:2012-01-16 11:28:07

标签: php mysql

我正在尝试使用选择使用限制来更新 当我们仅在(limit 50)

等选择查询中使用一个参数输入“限制”时,更新表就更好了

但是当选择像“limit $sqlFrom, $sqlTo这样的”限制“时,它会更新表但跳过第2(51到100)条记录并再次从101开始更新。

它跳过每第2个50条记录

问题出在哪里???

这是代码

$sqlFrom  = 0;
$sqlTo    = 50;

for($try = 0; $try < 6; $try++) 
{   

 $res = mysql_query("select * from table_name where underprocess = 0 limit " . $sqlFrom . "," . $sqlTo);

 while($row = mysql_fetch_array($res))
 {
     $id = $row['id'];

    mysql_query("update table_name set underprocess = 1 where id = " . $id) or die('error');
    echo $id;

 }


print '<hr/>';
if($sqlFrom != 0)
{
    $sqlFrom += $sqlTo;
}
else
{
    $sqlFrom = $sqlTo;
}
}//for

1 个答案:

答案 0 :(得分:0)

这是预期的

根据第一次迭代更新第1-50行时,设置underprocess = 1。这些在第二次调用中被忽略,因为要求行underprocess = 0

因此,如果您愿意,第一个查询中的第51-100行现在是第二个查询的第1-50行。

您无需更改LIMIT范围,因为您始终需要“第一个”50。

注意

无论如何都不保证您的LIMIT,因为您没有ORDER BY。