2013-10-31 25 views
0
SET @variable1 = (SELECT id FROM table2); 
update vars set unq=1 where id IN @variable1 

如何執行上述查詢。因爲有一百萬行和子查詢需要花費太多時間進行更新。所以如何將var的所有id保存在var中並在第二個查詢中使用。如何在變量中存儲子查詢。 MySql

回答

1

in使用子查詢時間過長,請嘗試使用加入重寫:

update vars join 
     table2 
     on vars.id = table2.id 
    set unq = 1; 

table2.id的索引,將有助於加速性能,以及。

+0

謝謝.... Dammmmmmmmmm我怎麼忘記加入.. –

+0

必須等待8分鐘。接受...... –

+0

(查詢花了13.3356秒哇!)你能否也請看看這個... http://dba.stackexchange.com/questions/52609/fasted-way-to-perform-simple -operations對1百萬行-的mysql-的InnoDB表 –

相關問題