Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
时间: 2024-03-08 17:48:23 浏览: 22
当需要更新多个字段时,可以通过一条SQL语句批量更新数据。以下是一条使用update、case、when和then的SQL语句实现批量更新数据的示例:
```
UPDATE table_name
SET
column1 = CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE column1 END,
column2 = CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE column2 END,
...
columnN = CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE columnN END;
```
在上述示例中,table_name代表要更新的表名,column1~columnN代表要更新的字段名,condition1~conditionN代表更新条件,value1~valueN代表更新的值。
例如,要将表中所有status=1的记录的age字段更新为20,gender字段更新为'男',可以使用以下SQL语句:
```
UPDATE users
SET
age = CASE WHEN status = 1 THEN 20 ELSE age END,
gender = CASE WHEN status = 1 THEN '男' ELSE gender END;
```
这条SQL语句会将表名为users中所有status为1的记录的age和gender字段更新为指定的值,同时保留其他记录的原始值。