MySQL中的CASE語句可以根據一個或多個條件返回不同的結果。但在實際應用中,有時候需要讓所有的CASE都被執行,不管條件是否匹配成功。這時可以使用CASE的ELSE語句。
ELSE語句在所有條件都不滿足時執行,它不需要條件,只要CASE中的條件都不滿足,ELSE后面的語句就會被執行,這樣就可以保證所有的條件都能被執行。
SELECT CASE WHEN country='China' THEN '漢語' WHEN country='Japan' THEN '日語' ELSE '英語' END FROM users;
在這個例子中,如果用戶的國籍是中國或日本,就會返回相應的語言;否則將返回英語。
如果我們要讓所有的條件都被執行,可以改用如下語句:
SELECT CASE WHEN country='China' THEN '漢語' ELSE '' END CASE WHEN country='Japan' THEN '日語' ELSE '' END CASE ELSE '英語' END FROM users;
這里將每個CASE獨立出來,如果一個條件不滿足就返回空字符,這樣就保證了所有的條件都能被執行。通過這種方式,我們可以實現在MySQL中讓所有的CASE都被執行。