MySQL的switch語句是一種非常常用的分支控制語句,可根據不同的情況選擇不同的操作。它的語法類似于其他編程語言,使用SELECT CASE語句來定義這些分支。
/* 語法如下 */ SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionN THEN resultN ELSE default_result END
其中,condition為要測試的條件,result為當條件為真時要返回的結果,default_result為如果所有的條件都不匹配時返回的結果。注意case語句中的when子句可以有多個,但只有一個else子句。
以下是一個基本的示例:
SELECT CASE pet_type WHEN 'dog' THEN 'dog food' WHEN 'cat' THEN 'cat food' ELSE 'other food' END FROM pet
這個SELECT語句將pet表中的所有pet_type列的值與不同的字符串進行比較。 如果pet_type等于“dog”,則返回“dog food”。 如果它等于“cat”,則返回“cat food”。 如果它不等于任何一個條件,則返回“other food”。
在MySQL中,switch語句可以嵌套,可以用來控制代碼執行。因為switch語句只經過了一次計算(針對一塊數據),因此switch比多個if-else if語句快得多。但是,當判斷的條件不是整數類型時,必須使用if和else if語句。
最后需要注意的是,在MySQL中,switch語句只工作在全局模式中。因此,如果要使用該語言設置shell變量,請將輸出放在新行。