Php 查询中的查询。。装载时间长

Php 查询中的查询。。装载时间长,php,mysql,sql,Php,Mysql,Sql,嘿,我想我需要在查询中做一个查询。 以下是我试图做的事情,它似乎起作用,但需要永远加载: $query="SELECT * FROM Table1"; $results=mysql_query($query); while($row=mysql_fetch_array($results)){ $bnr=$row['COL 1']; $usg=$row['COL 19']; echo"$bnr hat $usg <br /> "; $sqlupdate="UPDATE T

嘿,我想我需要在查询中做一个查询。 以下是我试图做的事情,它似乎起作用,但需要永远加载:

    $query="SELECT * FROM Table1"; 
$results=mysql_query($query); 
while($row=mysql_fetch_array($results)){
$bnr=$row['COL 1'];
$usg=$row['COL 19'];
echo"$bnr hat $usg <br /> "; 
$sqlupdate="UPDATE TABLE_1 
        SET
        Usg='$usg'
        WHERE 
            bnr = '$bnr'"; 
mysql_query($sqlupdate); 
} 

是的,无论您是否在另一个查询中执行,单独更新多行都将花费很长时间

但是,在同一个数据库上同时运行两个查询肯定不会有任何帮助

也就是说,好消息是,在您的示例中,您可以使用带有连接的更新在服务器上完全执行更新

  UPDATE TABLE_1 as TDest 
         INNER JOIN TABLE1 as TSrc
                 ON TDest.bnr = TSrc.`COL 1`
     SET TDest.Usg = TSrc.`COL 19`

我认为您想要的MySQL查询是:

update tdest t1 join
       tdest t2
       on t1.bnr = t2.`Col 1`
    set t1.usg = t2.`Col 19`;

在循环中进行更新或任何类型的查询都可能导致其速度减慢。@Fred ii-:除非您使用了事务。更简短的是:更新Table1,TABLE_1设置TABLE_1.Usg=Table1.Usg,其中Table1.bnr=TABLE_1.bnr-@洛克塔兹说得对但我并不是想说得简短。。我想这就是微软SQL Server多表更新的语法。MySQL实现的语法有点不同,它们都是标准SQL的扩展。