2013-12-16 108 views
1

我想知道系統將使用哪種情況,假設滿足多個條件。mysql case滿足多個條件

CASE 
    WHEN id IN($cID) THEN `count`+1 
    WHEN id IN($prev_catID) THEN `count`-1 
END 

它會是第一個還是最後一個?

在其他編程中,每個條件都會添加一個BREAK來終止進程。 BREAK會在mysql中執行嗎?

回答

2

case語句按順序進行評估。第一個匹配的語句是返回的語句。

這在documentation相當清楚的描述:

對於第二語法,每個WHEN子句search_condition表達 評估,直到有一個爲真,在該點其對應THEN子句 執行STATEMENT_LIST。如果沒有search_condition相等,則執行 ELSE子句statement_list(如果有)。