Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
时间: 2024-03-10 16:45:30 浏览: 74
可以使用以下语句实现批量更新数据:
```sql
UPDATE table_name
SET column_name =
CASE
WHEN condition_1 THEN new_value_1
WHEN condition_2 THEN new_value_2
...
ELSE column_name
END
WHERE condition;
```
其中,`table_name`为要更新的表名,`column_name`为要更新的列名,`condition`为更新条件。`CASE`语句中,可以使用多个`WHEN`和`THEN`条件,每个条件都对应一个新的值。
例如,假设要将`students`表中所有`age`字段大于等于20岁的学生的`gender`字段更新为`'男'`,小于20岁的学生的`gender`字段更新为`'女'`,可以使用以下语句:
```sql
UPDATE students
SET gender =
CASE
WHEN age >= 20 THEN '男'
ELSE '女'
END
WHERE age >= 0;
```
这条语句将`students`表中所有`age`字段大于等于0岁的学生的`gender`字段更新为`'男'`或`'女'`。注意,在`CASE`语句中,`ELSE`条件可以省略,省略后不符合`WHEN`条件的记录将不会被更新。
相关问题
mysql update使用 case when
MySQL的UPDATE语句可以使用CASE WHEN语句来实现根据条件更新多条记录的功能。具体的用法如下:
UPDATE 表名
SET 字段名 = CASE
WHEN 条件1 THEN 值1
WHEN 条件2 THEN 值2
ELSE 值3
END
WHERE 条件;
其中,表名是要更新的表的名称,字段名是要更新的字段的名称,条件是要满足的条件,值是要更新的值。CASE WHEN语句根据不同的条件来设置不同的值。
举个例子,假设我们有一个名为students的表,它有三个字段id、name和age。我们要更新id为1、2和3的学生的年龄为20岁,可以使用以下的UPDATE语句:
UPDATE students
SET age = CASE
WHEN id = 1 THEN 20
WHEN id = 2 THEN 20
WHEN id = 3 THEN 20
END
WHERE id IN (1, 2, 3);
这个语句会将id为1、2和3的学生的年龄都更新为20岁。注意,在这个例子中,如果id不是1、2或3,那么年龄字段将不会被更新。
综上所述,通过使用CASE WHEN语句,我们可以在MySQL的UPDATE语句中实现根据条件更新多条记录的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例](https://blog.csdn.net/davis_1234/article/details/101886946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
mysql case when语句的使用
MySQL中的CASE WHEN语句是一种条件语句,用于根据不同的条件执行不同的操作。它的语法格式如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE resultN
END
其中,expression是要比较的表达式,value1、value2等是要比较的值,result1、result2等是对应的结果。如果expression等于value1,则返回result1;如果expression等于value2,则返回result2;如果都不满足,则返回ELSE后面的结果resultN。
CASE WHEN语句可以嵌套使用,也可以与其他SQL语句一起使用,例如SELECT语句、UPDATE语句等。它可以用于数据转换、条件筛选、计算等多种场景,是MySQL中非常常用的语句之一。
阅读全文