2010-04-24 23 views
1

查詢到哪裏X更新Y,並在哪裏更新Mysql Table列中的B.我想要在一個MYsql查詢中搜索並替換表列中的多個值

如何在MYsql中對特定表中同一列上的一個查詢執行此操作。 我想要搜索並替換表格列中的多個值。

條件在表1中列1

Where X update Y 
and 
Where a update b 
and 
Where 1 update 2 
and 
Where 3 update 4 
and 
Where value1 update value 2 

等。

我可以單獨做這個,但我怎麼能做得更快?有沒有一個MySQL函數來幫助我呢?

我有大約120列200搜索和替換/更新每列的值。

謝謝。

+0

或者讓我知道如果這我不可能,所以我停止敲我的頭,以創新的方式完成這項工作。 – user204245 2010-04-24 21:10:38

+0

你的問題很混亂。 「你在哪裏更新2」是什麼意思。在這種情況下,'1'是什麼?它從何而來? – 2010-04-24 21:17:10

回答

1

您可以使用這樣的事情:

update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B) 

但我相信它會比慢2次獨立的更新,因爲它試圖每一行的值重置回自己,當它不符合條件。

您可以通過添加一定程度上優化它:

update table table set A = if(conditionA, newA, A), B = if(conditionB, newB, B) 
where conditionA or conditionB 

這可能是在某些情況下速度比2次的查詢。

0

你可以做這樣的事情:

UPDATE table1 
SET 
    col1 = CASE WHEN col2 THEN a ELSE col1 END, 
    col3 = CASE WHEN col4 THEN b ELSE col3 END 

注意這一點,如果條件不滿足設置一個值回自己,有效地使其保持不變。

相關問題