首頁  >  文章  >  資料庫  >  MySQL 的 CASE 表達式如何像 Switch 語句一樣發揮作用?

MySQL 的 CASE 表達式如何像 Switch 語句一樣發揮作用?

Patricia Arquette
Patricia Arquette原創
2024-11-05 17:33:02472瀏覽

How Does MySQL's CASE Expression Function Like a Switch Statement?

理解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

此格式可讓您使用任何有效的SQL 運算式指定多個比較條件。每個「WHEN」子句都會評估其條件,如果為真,則執行對應的語句。

具有單一值的語法:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn