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