一、概述
MySQL update case when是一種非常常用的SQL語句,它能夠根據給定的條件動態地更新欄位值,具有很高的靈活性。在大多數情況下,update case when的語法格式類似於:
UPDATE table_name
SET column_name =
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END
WHERE some_condition;
其中,當滿足特定條件(condition1, condition2等)時,更新欄位(column_name)為特定值(value1, value2等),否則設置默認值(default_value)。
二、基本用法
update case when主要用於對數據表的更新操作,其語法格式類似於:
UPDATE table_name
SET column_name =
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END
WHERE some_condition;
在這裡,table_name 是要更新的數據表名稱,column_name 是要更新的欄位名稱,condition1、condition2等是要檢查的條件,value1、value2等是與每個條件相關聯的值 或選擇默認的 default_value。
下面是一個例子,演示了如何使用update case when將表中的值從『M』更改為『F』:
UPDATE employees
SET gender =
CASE
WHEN gender = 'M' THEN 'F'
ELSE gender
END
WHERE department = 'marketing';
三、嵌套case when
在某些情況下,您可能需要在一個語句中使用多個update case when。可以使用嵌套 case when 在同一個表達式中進行多個級別的測試
UPDATE table_name
SET column_name =
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
WHEN condition3 THEN
CASE
WHEN condition4 THEN value4
WHEN condition5 THEN value5
ELSE value6
END
ELSE default_value
END
WHERE some_condition;
下面是一個例子,演示了如何使用嵌套CASE WHEN語句更新sales_rep欄位:
UPDATE employees
SET sales_rep =
CASE
WHEN gender = 'M' THEN 'Dave'
WHEN gender = 'F' THEN
CASE
WHEN age < 30 THEN 'Samantha'
ELSE 'Jessica'
END
ELSE sales_rep
END
WHERE department = 'marketing';
四、update case when應用場景
update case when的應用場景很廣泛,以下列舉幾個應用場景:
1、更新空值或默認值
使用update case when可幫助您更新欄位的默認值或空值:
UPDATE employees
SET department =
CASE
WHEN department IS NULL THEN 'unassigned'
ELSE department
END;
2、根據條件過濾更新
您可以使用update case when根據特定條件來更新欄位值。 以下示例演示了如何基於條件更新欄位值:
UPDATE employees
SET gender =
CASE
WHEN age = 30 THEN 'M'
ELSE gender
END
WHERE department = 'marketing';
3、轉換/規範化數據
您可以使用update case when從一個範圍轉換為另一個範圍或更改值的大小寫。 以下示例演示了如何根據範圍更新sales_rep欄位:
UPDATE employees
SET sales_rep =
CASE
WHEN sales_rep BETWEEN 100 AND 500 THEN 'low'
WHEN sales_rep BETWEEN 501 AND 1000 THEN 'medium'
WHEN sales_rep > 1000 THEN 'high'
ELSE sales_rep
END;
五、總結
本文簡單介紹了MySQL update case when語句的語法和常用場景。它是一種非常方便的語法,可以根據不同的條件動態地更新欄位值。 大家可以根據自己的實際需要,進一步掌握update case when的使用技巧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280759.html