我在MySQL数据库中有一个表schools
,它有列number_of_pupils
,pupil_capacity
和pupil_numbers_or_capacity
(所有整数字段(。
我想根据以下规则设置pupil_numbers_or_capacity
字段:
- 如果number_of_pupils不为 null 且大于零,则使用该值。
- 否则,如果 pupil_capacity 不为 null 且大于零,请使用该值。
- 如果以上都不是,请不要更新它。
我可以在单个更新查询中执行此操作吗?
试试这个:
UPDATE schools t
SET t.pupil_numbers_or_capacity = CASE WHEN number_of_pupils > 0
THEN number_of_pupils
ELSE pupil_capacity END
WHERE t.number_of_pupils > 0
OR t.pupil_capacity > 0