mysql 批量更新多个字段多个条件 详细案例sql
时间: 2024-09-29 16:10:40 浏览: 35
在MySQL中,批量更新多个字段并基于多个条件可以使用UPDATE语句结合CASE WHEN子句来实现。以下是一个详细的SQL示例:
假设我们有一个名为`employees`的表,包含`employee_id`, `current_salary`, 和 `new_position`等字段,我们要将所有当前薪水大于50000并且岗位未满两年(`years_of_service`小于2)的员工的薪资降低10%,同时给他们一个新的职位“Senior”。
```sql
UPDATE employees
SET
new_salary = CASE
WHEN current_salary > 50000 AND years_of_service < 2 THEN current_salary * 0.9
ELSE current_salary
END,
new_position = 'Senior'
WHERE current_salary > 50000 AND years_of_service < 2;
```
在这个查询中:
- `SET new_salary = CASE...END`:如果满足条件(薪水大于50000且服务年限小于2),则将新的薪资设为原薪资的90%;否则保持不变。
- `SET new_position = 'Senior'`:无论是否满足其他条件,都将新职位设置为'Senior'。
- `WHERE current_salary > 50000 AND years_of_service < 2`:这是应用上述修改的条件。
注意:实际操作时请确保有正确的备份,并谨慎使用UPDATE语句,因为它直接修改数据库内容,一旦出错可能会永久改变数据。