2014-02-27 47 views
0

我有一個包含數字(> 10)列的表。現在我需要更新一個列(rc),根據不同的條件(總共4個)更新其他列的內容。我使用的情況下做到這一點,但在最後一個情況下,條件是,如果沒有上述3工作,我需要設置如下rc列。mysql用一組列中的數據更新一列,以非零值爲準

我需要檢查五個測試列中的哪一列非零,並將其內容設置在rc列中。

請幫我我如何做到這一點。

下面是我在做什麼

UPDATE <table_name> 
SET CASE 
WHEN {condition_1} THEN col_1=true, rc = CONCAT("Reason is", col_2) 
WHEN {condition_2} THEN col_1=true, rc = CONCAT("Reason is", col_3) 
WHEN {condition_3} THEN col_1=true, rc = CONCAT("Reason is", col_4) 

WHEN {I'm stopped here} THEN col_1=true, rc = CONCAT(" Reason is", {whichever column is non- zero})

END 

請幫我最後一個條件應該是什麼聲明。記住,我通過傳遞來自C++程序的查詢來完成所有這些工作。

+0

我在這裏聞到DB設計缺陷。 –

+0

您能否介紹一下 – user3291628

+0

讓我改述一下:這樣的醜陋查詢表明您的模式並非嚴格設計。因爲我不知道你在做什麼,我不可能提供進一步的建議。 –

回答

-2

我已經使用其他一些程序來解決這個問題。我一次檢索所有數據,使用C++進行處理,然後更新表格。

這可以使用一些編程語言來完成。使用特定於該語言的數據庫API獲取數據,然後相應地處理它們。然後它可以更新到數據庫。

相關問題