我正在嘗試使用另一個表的列中的數據更新表中的特定列。我試圖運行下面的命令,但我在第3行得到一個語法錯誤MySQL更新語句
UPDATE af_application af
SET application_price=rss.application_price
FROM rss_applications rss
WHERE af.application_id=rss.application_id
我正在嘗試使用另一個表的列中的數據更新表中的特定列。我試圖運行下面的命令,但我在第3行得到一個語法錯誤MySQL更新語句
UPDATE af_application af
SET application_price=rss.application_price
FROM rss_applications rss
WHERE af.application_id=rss.application_id
UPDATE af_application af, rss_applications rss
SET application_price=rss.application_price
WHERE af.application_id=rss.application_id
你不能在UPDATE
語句中使用FROM
。您需要改用JOIN
。
UPDATE af_application af
JOIN rss_applications rss
ON af.application_id=rss.application_id
SET af.application_price=rss.application_price
欲瞭解更多信息,請參閱http://dev.mysql.com/doc/refman/5.0/en/update.html和http://dev.mysql.com/doc/refman/5.0/en/join.html。
謝謝,這工作,但它真的很慢。你知道爲什麼嗎? – David
@David:是否在'rss_applications'表中的任何索引覆蓋了'application_id'?多少行更新? – zerkms
'index'是什麼意思?你指的是'application_id'是否是主鍵?如果這樣'application_id'被設置爲表的主鍵。只有約6000條記錄被更新。 – David