Php mysql使用一条语句更新数千行
我有一个表,它有超过200000行,并且正在增长,需要在给定的时间间隔进行更新 我以前是用for-each循环来完成的,直到最近才开始工作。现在我遇到了php超时问题 更新非常简单。它使用行的唯一id并更新数量 我查看了用例,但似乎可以更新多少行是有限制的Php mysql使用一条语句更新数千行,php,mysql,Php,Mysql,我有一个表,它有超过200000行,并且正在增长,需要在给定的时间间隔进行更新 我以前是用for-each循环来完成的,直到最近才开始工作。现在我遇到了php超时问题 更新非常简单。它使用行的唯一id并更新数量 我查看了用例,但似乎可以更新多少行是有限制的 任何建议都将不胜感激。好吧,这是一种冒险。你提到“更新数量”。你可以从几个角度考虑 在代码中,确定需要更新的唯一“数量” 假设您有20万个产品需要更新,但库存水平往往保持在0到50之间 那么您就只有大约50条SQL语句可以执行了。然而,它们可
任何建议都将不胜感激。好吧,这是一种冒险。你提到“更新数量”。你可以从几个角度考虑
$s = "update myTable set quantity = 10 where id in (124,1215,1232,4444,4532,46789);";
$r = $db->query( $s );
$s="UPDATE myTable SET quantity = (quantity + 1) WHERE id IN (124,1215,1232,4444,4532,46789)";
$r = $db->query( $s );
$in_statement = "( ".implode(",",$array_of_ids_that_went_up_by_5)." );
您可能需要在结尾处添加一个逗号
应该比200K SQL语句更高效。在一个查询中可以更新多少行没有限制;但是使用循环将是非常低效的。您需要发布一些代码,以便我们有机会提供任何帮助。您需要对数据应用什么样的更改?仅当200000个更改中的每一个都是唯一的时,才使用for循环进行此操作。经验教训。永远不要在循环内执行查询。