Php 我想批量更新表中的数据
我有一个临时表,它保存了表1中要修改的数据,要更新表1,我使用以下查询:Php 我想批量更新表中的数据,php,mysql,Php,Mysql,我有一个临时表,它保存了表1中要修改的数据,要更新表1,我使用以下查询: UPDATE table1 pr INNER JOIN tmpTable tmp ON (pr.product_id = tmp.product_id) SET pr.isactive = tmp.isactive 但由于tmpTable包含大量要更新的数据,我的查询有时会以“超时”结束。所以我的问题是,基本上最简单的批量更新数据的方法是什么?比如说,10公里 提前谢谢 使用WHERE子句限制数据-如何使用当前提供的信息
UPDATE table1 pr
INNER JOIN tmpTable tmp
ON (pr.product_id = tmp.product_id)
SET pr.isactive = tmp.isactive
但由于tmpTable包含大量要更新的数据,我的查询有时会以“超时”结束。所以我的问题是,基本上最简单的批量更新数据的方法是什么?比如说,10公里
提前谢谢 使用WHERE子句限制数据-如何使用当前提供的信息格式化无法回答的WHERE。您可以使用临时表中的主键或标识键以及UPDATE语句中的WHERE子句限制记录数。例如:
UPDATE table1 pr
INNER JOIN tmpTable tmp
ON (pr.product_id = tmp.product_id)
SET pr.isactive = tmp.isactive ***WHERE tmp.ID BETWEEN 1 and 10000***
希望这有帮助。您在PHP中标记了这一点,因此我假设您愿意在其中做一些工作,而不仅仅是在单个查询中。多次运行查询。差不多
for($i<$minId; $i<maxId;$i+=10000){
$db->query("UPDATE table1 pr
INNER JOIN tmpTable tmp
ON (pr.product_id = tmp.product_id)
SET pr.isactive = tmp.isactive where isactive between $i and $i+10000");
}
for($i10K)似乎没有太多数据。你检查过索引吗?确保两个表上的product\u id
是相同的数据类型,长度相同,并且被索引。这可能会有所帮助。嗨,艾曼,实际上我只是以10K为例来说明我可以批量更新表的行数。比如,按10K更新4M数据。