2013-06-20 53 views
0

這可能聽起來像一個微不足道的問題,但我無處不在。 我有這樣一個表:如何將一行中的條目複製到另一行,但在mysql中的同一列中

id var1 
1 
2 19353 

存在的VAR1其中id = 1的條目,我想爲VAR1條目從其他行復制到該位置,這樣我有

id var1 
1 19353 
2 19353 

我試過但不成功:

update table set var1 = (select var1 from table where id=2) where id=1; 

什麼建議嗎? 謝謝!

+0

爲什麼這是不成功的。在我看來很好!在發佈UPDATE後,表格是什麼樣的? –

+0

我得到了錯誤** ERROR 1093(HY000):您無法在FROM子句中指定目標表'表'進行更新** – user1637359

+0

啊!嘗試'更新表設置var1 =(從表AS t2選擇t2.var1其中t2.id = 2)其中id = 1;' –

回答

0

MySQL對於多表更新的語法似乎有自己的想法(a/k/a UPDATE FROM)。看起來像以下是必需的。除此之外,我沒有MySQL來測試。

UPDATE t AS t1, t AS t2 
SET t1.var1 = t2.var1 
WHERE t1.id=1 AND t2.id=2; 

編輯:我已將表名更改爲t;我們不希望在那裏留下保留字。

+0

我在哪裏指定表名? – user1637359

+0

哦,在你放t的地方? – user1637359

+0

我得到了錯誤**未知列't1.var1'在'字段列表'中** – user1637359

相關問題