2015-07-05 62 views
0

語言:Java DB的:MySQL的我可以使用情況下對MySQL的更新穆蒂,行


我有2個排序列表更新 '表':

List A : 
-------- 
a1 
a2 
. 
. 
. 
a10000 

list B: 
-------- 
b1 
b2 
b3 
... 
b10000 


table 
--------- 
Column A Column B 

我可以使用情況......什麼時候?有沒有任何性能問題(10000條記錄)?

UPDATE `table` SET `A` = CASE 
    WHEN B = b1 THEN a1 
    WHEN B = b2 THEN a2 
    .... 
    WHEN B = b10000 THEN a10000 
    END 
WHERE B in (b1,b2,....b10000) 

+1

您可以在'SET'子句中使用'CASE',但您在此處的示例令人困惑。是「列表A」和「列表B」表嗎?如果是這樣,你可能會加入。請將實際輸入數據的示例與實際輸出應該是什麼樣子的示例一起發佈。 –

+0

謝謝you.list A和B是2個java列表。 – laodun

回答

0

可以使用case。我不確定你的意思是「性能問題」。如果列表中有10,000個id,則可能會遇到其他問題(MySQL可以處理非常大的查詢,但應用程序和服務器之間可能存在問題)。

取而代之,將數據放在一個有兩列的表格中:ab。然後做更新爲:

update `table` t join 
     ab 
     on t.a = ab.a 
    set t.b = ab.b; 

隨着ab(a)索引,這應該是有不俗的表現。

+0

謝謝你,我的名聲太少,無法提升你的答案:( – laodun

相關問題