理解MySQL的CASE表達式
與直覺的「if」語句不同,MySQL的CASE語法模仿「switch」語句。它提供兩種不同的格式來評估條件並傳回相應的結果。
比較語句的語法:
CASE<pre class="brush:php;toolbar:false">WHEN user_role = 'Manager' then 4 WHEN user_name = 'Tom' then 27 WHEN columnA <> columnB then 99 ELSE -1 --unknown
END
具有單一值的語法:
CASE user_role<pre class="brush:php;toolbar:false">WHEN 'Manager' then 4 WHEN 'Part Time' then 7 ELSE -1 --unknown
END
END
這種簡潔的形式假設您只檢查一個值,並允許您在CASE 表達式之後直接指定多個「WHEN」條件。 「ELSE」子句是可選的,如果沒有滿足「WHEN」條件,則提供後備值。應用到您的範例:
WHEN 'Manager' then 5 WHEN 'Part Time' then 8 ELSE -1 --unknown
產生新的欄位「role_order」基於「user_role」字段,您可以使用第二種語法,如下所示:
CASE user_role<p></p>END;當「user_role」為「Manager」時,此表達式將值5指派給「role_order」;當「user_role」為「Part Time」時,該表達式將值8 指派給「role_order」;當這兩個條件都不滿足時,該表達式會將值指派給-1。
以上是MySQL 的 CASE 表達式如何像 Switch 語句一樣發揮作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!