1
我試圖將表上的所有行更新爲基於LIMIT的for循環的迭代值,以便更新將在批處理中完成。我從帖子update multiple rows using limit in mysql?的建議中得到了一個提示,但它似乎給了我一個問題。該表有2400多行,相關字段具有全0值。這裏是我的代碼:MySQL:使用選擇和限制來更新行
for($i = 0;$i < 7; $i++) {
$qq2_ = $db1->prepare("UPDATE ledum_orgs SET ledum_org_size = :val WHERE ledum_org_size IN (
SELECT ledum_org_size FROM (
SELECT ledum_org_size FROM ledum_orgs WHERE ledum_org_size = '0'
ORDER BY ledum_org_name ASC
LIMIT ".($i*400).", 400
) tmp
)"
);
$qq2_->bindValue(':val',$i);
$qq2_->execute();
echo $i."=>".$qq2_->rowCount().", ";
}
但它似乎忽略LIMIT子句,設置現場爲所有2445行到「1」。下面是輸出:
0 => 0,1 => 2445,2 => 0,3 => 0,4 => 0,5 => 0,6 => 0,
誰能告訴我爲什麼這樣做?