我试图一次执行多个更新查询。请看下面提到的代码。如何使用mysql执行多个更新查询
实际代码块:
$relist_item_id = $_REQUEST['relist_item_id']; // an array
$relist_item_num = count($relist_item_id);
for($j = 0; $j < $relist_item_num; $j++){
$item_id = $relist_item_id[$j];
$update_query = "UPDATE items SET ActiveItem=1 WHERE id=$item_id";
mysql_query($update_query);
}
上面的代码将通过一个执行每个查询之一。但是我想一次执行所有的查询,所以我尝试了下面的代码。
$update_query = '';
for($j = 0; $j < $relist_item_num; $j++){
$item_id = $relist_item_id[$j];
$update_query .= "UPDATE items SET ActiveItem=1 WHERE id=$item_id;";
}
mysql_query($update_query);
上述代码未执行/更新记录。但是,我想以类似的方式执行。是否有可能这样做?
在phpmyadmin中使用“SQL”,我已经检查过我们可以一次执行多个查询,即可以一次执行多个更新查询。例如。下面提到的更新查询将一次执行。
UPDATE items SET ActiveItem=1 WHERE id=1;UPDATE items SET ActiveItem=1 WHERE id=5;UPDATE items SET ActiveItem=1 WHERE id=10;UPDATE items SET ActiveItem=1 WHERE id=12;UPDATE items SET ActiveItem=1 WHERE id=15;UPDATE items SET ActiveItem=1 WHERE id=16;UPDATE items SET ActiveItem=1 WHERE id=20;
我也想知道,有没有对查询关键词,比如我们可以在同一时间或因此执行最多20个查询的任何限制?
我的实际目标是节省执行时间,因为可能有一个巨大的for循环,并且可能需要很多时间才能逐个执行每个查询。我上面的方法可能不正确。但是,你的想法可以帮助我这样做。
在此先感谢。
你需要多个查询,你只能在一次执行一个语句。 –
你可以在你的查询中使用'IN',比如'UPDATE items SET ActiveItem = 1 WHERE id IN($ items_id_comma_separated)' –
在数据库级别,它会逐个执行。所以,没有必要做你想做的事。你没有获得任何东西。 – nullpotent