我有两个桌子。 第一个数据表结构有九列,但重要的三列是:
代码|名称|值
2D3 |名称测试| 0.12
第二个表具有相同的三列。
现在我想用表2的值更新第一个表的所有行,其中代码和名称与表2中的相同。
所以我目前的想法是选择表1中所有带有代码和名称列的行,而不是检查表2中是否存在具有相同代码和名称的行,如果是,则获取该值并执行UPDATE在表1中查询表2的值。
问题在于两个表都很大,我确定我没有使用最快的方法。 有人知道最快的方法吗?非常感谢你!
编辑:查询:
$getall = "SELECT code, name, value FROM table2";
$query = mysqli_query($conn, $getall );
while($result = mysqli_fetch_array($query))
{
$UpdateAll = "UPDATE table1 SET value = '".mysqli_real_escape_string($conn,$result["value"])."' WHERE name = '".mysqli_real_escape_string($conn,$result["name"])."' AND code = '".mysqli_real_escape_string($conn,$result["code"])."'";
$result2 = mysqli_query($conn, $UpdateAll); }
答案 0 :(得分:2)
您说的是两个数据库,但实际上是两个表,不是吗?在这种情况下,您可以使用联接进行一次更新,例如:
update table1 t1
inner join table2 t2 on t2.code = t1.code and t2.name = t1.name
set t1.value = t2.value;