mysql case when 更新
时间: 2024-08-10 22:01:11 浏览: 36
`CASE WHEN` 语法在 MySQL 中用于条件判断和选择性的数据更新操作。它允许你在 SQL 查询中基于某个表达式的结果来进行不同的操作。
基本结构如下:
```sql
UPDATE table_name SET column = CASE
WHEN condition THEN value
ELSE default_value
END
[WHERE some_condition];
```
这里是一个具体的例子说明如何在更新数据时使用 `CASE WHEN`:
假设我们有一个名为 `students` 的表,其中包含 `id`, `name`, 和 `grade` 列,现在我们要将所有成绩小于60的学生的成绩更新为60分。
```sql
UPDATE students
SET grade = CASE
WHEN grade < 60 THEN 60
ELSE grade
END;
```
在这条查询中:
- `UPDATE students` 表示我们将对 `students` 表执行更新操作。
- `SET grade =` 指定了我们需要更新的列及其新值。
- `CASE` 后面的部分是我们使用的 `CASE WHEN` 语法块。
- `WHEN grade < 60 THEN 60` 是条件分支,如果满足这个条件(即学生分数小于60),则将其分数设置为60。
- `ELSE grade` 部分表示当上述条件不满足时(即学生分数等于或大于60),保持原分数不变。
- 最后的 `END` 结束了 CASE 语法块。
`CASE WHEN` 除了上面的基本结构之外,还可以包含更多复杂的条件分支和默认值,使得你可以更灵活地控制数据的更新过程。例如:
```sql
UPDATE students
SET grade = CASE
WHEN grade < 50 THEN 50 -- 如果分数小于50,则设置为50
WHEN grade BETWEEN 50 AND 69 THEN (grade + 10) / 2 -- 如果分数在50到69之间,则取平均值并向上取整作为新的分数
ELSE grade -- 其他情况保持原有分数不变
END;
```
通过使用 `CASE WHEN`,你可以有效地根据不同的条件动态调整数据库中的数据,这对于自动化数据清洗、错误修正或是基于特定规则的批量更新特别有用。
---
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)