mysql批量根据不同条件每条数据更新不同的值
时间: 2023-07-22 20:45:26 浏览: 114
mysql 同时更新多行数据不同的值
可以使用MySQL的`CASE WHEN`语句来根据不同条件批量更新每条数据的不同值。`CASE WHEN`语句的语法如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
其中,`expression`是要判断的表达式,`value1`、`value2`等是判断的值,`result1`、`result2`等是对应的结果,`default_result`是默认结果(当所有的`WHEN`条件都不满足时返回的值)。
假设我们有一个名为`students`的表,其中包含`id`、`name`和`score`三个字段,现在我们要将所有分数低于60分的学生的分数都更新为60分,将分数在60到80之间的学生的分数都加10分,将分数高于80分的学生的分数都加20分,可以使用如下的SQL语句:
```
UPDATE students SET score =
CASE
WHEN score < 60 THEN 60
WHEN score >= 60 AND score <= 80 THEN score + 10
ELSE score + 20
END;
```
这条语句的意思是:将`students`表中所有`score`字段小于60的记录的`score`字段都更新为60,将`score`字段大于等于60且小于等于80的记录的`score`字段都更新为原分数加10,将`score`字段大于80的记录的`score`字段都更新为原分数加20。这样就可以根据不同条件批量更新每条数据的不同值了。
阅读全文