MySQL使用CASE WHEN/THEN/ELSE進行批次更新?
使用 CASE WHEN/ THEN/ ELSE 進行批次更新的語法如下 −
UPDATE yourTableName set yourColumnName=case when yourColumnName=Value1 then anyUpdatedValue1 when yourColumnName=Value2 then anyUpdatedValue2 when yourColumnName=Value3 then anyUpdatedValue3 when yourColumnName=Value4 then anyUpdatedValue4 else yourColumnName end;
為了理解上述語法,我們首先建立一個表。建立表的查詢如下 −
mysql> create table CaseUpdateDemo -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.78 sec)
使用 insert 命令向表中插入一些記錄。查詢如下 −
mysql> insert into CaseUpdateDemo values(1,'John'); Query OK, 1 row affected (0.17 sec) mysql> insert into CaseUpdateDemo values(2,'Carol'); Query OK, 1 row affected (0.27 sec) mysql> insert into CaseUpdateDemo values(3,'Mike'); Query OK, 1 row affected (0.11 sec) mysql> insert into CaseUpdateDemo values(4,'Bob'); Query OK, 1 row affected (0.15 sec)
使用 select 語句顯示錶中的所有記錄。查詢如下 −
mysql> select *from CaseUpdateDemo;
輸出
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 2 | Carol | | 3 | Mike | | 4 | Bob | +------+-------+ 4 rows in set (0.00 sec)
現在,您可以編寫我們上面討論的查詢以使用 Case WHEN THEN ELSE 更新列 id。查詢如下 −
mysql> update CaseUpdateDemo set Id=case when Id=1 then 1001 -> when Id=2 then 1002 -> when Id=3 then 1003 -> when Id=4 then 1004 -> else Id -> end; Query OK, 4 rows affected (0.15 sec) Rows matched: 4 Changed: 4 Warnings: 0
現在,您可以使用 select 語句檢查 ID 列是否已更新。查詢如下 −
mysql> select *from CaseUpdateDemo;
輸出
+------+-------+ | Id | Name | +------+-------+ | 1001 | John | | 1002 | Carol | | 1003 | Mike | | 1004 | Bob | +------+-------+ 4 rows in set (0.00 sec)
廣告