Php 我想批量更新表中的数据

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子句限制数据-如何使用当前提供的信息

我有一个临时表,它保存了表1中要修改的数据,要更新表1,我使用以下查询:

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数据。