2011-09-01 72 views
0

我有兩個表Token和distinctToken。以下是兩張表的描述。如何更新另一個表中的列,如果兩個表都有一個共同的文本字段

令牌 (ID INT,文本VARCHAR(100),utokenid INT)

distinctToken (ID INT,文本VARCHAR(100))

文本字段在兩個表中有相同的數據有一個例外,即令牌表中的文本字段包含重複的條目。

我想更新令牌表,使得utokenid成爲外鍵。更具體地說,我想設置的值Token.utokenid = distinctToken.id其中Token.text與distinctToken.text相同。是否有可能使用更新或我應該寫一個存儲過程來這樣做。

回答

2
UPDATE Token t, distinctToken dt SET t.utokenid = dt.id WHERE t.text = dt.text; 

我錯過了什麼嗎?

+0

你是100%正確和沒有任何東西,我失去了耐心,因爲我每次運行相同的查詢10分鐘後終止,mysql花了31分鐘來執行更新。謝謝 –

+0

您可以通過首先向兩列添加索引來幫助您。如果需要,您可以在完成後刪除索引。 – Zds

相關問題