带案例的MySQL批量更新何时/然后/否则?
使用CASEWHEN/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) -> );
使用insert命令在表中插入一些记录。查询如下-
mysql> insert into CaseUpdateDemo values(1,'John'); mysql> insert into CaseUpdateDemo values(2,'Carol'); mysql> insert into CaseUpdateDemo values(3,'Mike'); mysql> insert into CaseUpdateDemo values(4,'Bob');
使用select语句显示表中的所有记录。查询如下-
mysql> select *from CaseUpdateDemo;
输出结果
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 2 | Carol | | 3 | Mike | | 4 | Bob | +------+-------+ 4 rows in set (0.00 sec)
现在,您可以编写我们上面讨论的查询,以用CaseWHENTHENELSE更新列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; 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)
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短