簡體   English   中英

將3個MySQL查詢合並為一個

[英]Combining 3 MySQL queries into one

我正在試圖做的是采取整個表,並找出什么id是其電子郵件地址是價值成員的emails.from並把自己的id在那里來代替。 我正在嘗試使用ID而不是電子郵件地址來提高性能,但無法完成此任務。

$mysql = new mysql();
$mysql->query('SELECT `from` FROM `emails` ORDER BY `id` ASC' );

while($row = mysql_fetch_array($mysql->result)){
    $mysql2 = new mysql();
    $mysql2->query('SELECT `id` FROM `exchange` WHERE `email` = "'.$row['from'].'"');

    $details = mysql_fetch_assoc($mysql2->result);


    $mysql2->query('UPDATE `emails` SET `from` = '.$details['id'].' WHERE `from` = "'.$row['from'].'"');
}

如果你正在做整張桌子,就不需要查閱了。

UPDATE emails SET from=id

將在表格中的每一行。

如果我理解您的代碼,您可以嘗試這樣的事情:

UPDATE     `emails`
INNER JOIN `exchange` ON `exchange`.`email` = `emails`.`from`
SET `emails`.`from` = `exchange`.`id`

下面的查詢應該做的伎倆:)

update emails 
set `from`=(select e.id from exchange as e where e.email=em.`from`)
from emails as em
order by em.id asc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM