Mysql查询将字段设置为第一个非空,非零值来自其他两个字段

时间:2018-03-23 15:07:42

标签: mysql sql sql-update

我在MySQL数据库中有一个表schools,它有number_of_pupilspupil_capacitypupil_numbers_or_capacity列(所有整数字段)。

我想根据以下规则设置pupil_numbers_or_capacity字段:

  • 如果number_of_pupils不为null且大于零,则使用它。
  • 否则,如果pupil_capacity不为null且大于零,请使用它。
  • 如果以上都不是,请不要更新。

我可以在一次更新查询中执行此操作吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

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