首頁  >  文章  >  資料庫  >  MySQL 的 CASE 語句如何運作?

MySQL 的 CASE 語句如何運作?

Barbara Streisand
Barbara Streisand原創
2024-11-05 07:59:02171瀏覽

How Does MySQL's CASE Statement Work?

理解 MySQL CASE 的機制

MySQL 的 CASE 語句充當條件表達式,讓您根據指定條件動態分配值。雖然其語法可能類似於 if 語句,但其操作是不同的。

使用CASE 語句

CASE 語句的一般語法如下:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

在此上下文中,search_condition 表示確定是否執行關聯的statements_list的比較。 statements_list 可以包含任何有效的 MySQL 表達式。

角色排序的範例用法

要根據user_role 欄位中的值產生具有不同數字的欄位role_order,您可以可以如下使用CASE 語句:

CASE user_role
    WHEN 'Manager' THEN 5
    WHEN 'Part Time' THEN 7
    ELSE -1 -- Unknown
END

在此範例中,CASE 語句充當switch 語句。當 user_role 等於「Manager」時,它將值 5 指派給 role_order。類似地,當 user_role 等於 'Part Time' 時,它將值 7 指派給 role_order。如果 user_role 不符合任何指定的條件,則會指派值 -1 作為預設值。

替代語法

MySQL 為 CASE 語句提供替代語法當您只檢查一個值時。此語法更加簡潔,可以如下使用:

CASE
    WHEN user_role = 'Manager' THEN 4
    WHEN user_name = 'Tom' THEN 27
    WHEN columnA <> columnB THEN 99
    ELSE -1 -- Unknown
END

在此替代形式中,要比較的值 (user_role) 在開頭指定,後跟 WHEN 條件。

透過了解 CASE 語句的機制及其類似開關的行為,您可以有效地使用它來根據 MySQL 查詢中的特定條件分配值。

以上是MySQL 的 CASE 語句如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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