2012-09-05 51 views
1

我手上有一個非常奇怪的問題。我有一個項目,以前的數據庫工程師沒有給出db設計思想,現在我堅持下去。我的問題很簡單:MySQL控制流建議(CASE/THEN)

我和他們中的一個應該,如果一個字段設置與否,即

如果FIELD1是0執行兩種不同的選擇查詢 - >執行查詢1 如果字段1是1 - >執行查詢2

到目前爲止,我來到這裏:

SELECT should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX' 
CASE should_i_care 
    WHEN '1' then call query2 
    WHEN '0' then call query1 

但發現我不能宣佈我要運行的查詢。有什麼建議麼?

+0

這不可能是一個聲明,它需要一個腳本或程序。你需要使用if語句。 –

回答

1

這應該是一個腳本或存儲過程是這樣

DECLARE shouldICare INT; 

SELECT @shouldICare := should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX'; 

IF @shouldICare = 1 THEN 
    Call query2; 
ELSE 
    Call query1; 
END IF; 
+0

從長遠來看,重新設計表格是更好的選擇,但是感謝您使用這個整潔的解決方案。 – Anonymous

+0

不客氣。祝你好運 :) – hgulyan