注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

【MySQL】null値をSUM(足し算)するとNULLになる回避方法

null値をSUM(足し算)するとNULLになる

SELECT t1.report + t5.report
FROM ....

t5.report の値がnullだった場合、上記のSQLを実行した際に、結果は、t1.report の値に関わらず、結果はnullになってしまう。NULL値の四則演算の結果は必ずnullになるので、このようなケースが想定される場合は、回避できるようにする

COALESCE関数を使う

SELECT COALESCE(t1.report + t5.report, 0)
FROM ....

上記のように書くと、null値が含まれていた場合、0 で結果を返すことができる。ただ、t1.report が5という値が入っていて、t5.report がnullだった場合にも、0になってしまうので、下記のようにしておく。

SELECT COALESCE(t1.report + t5.report, t1.report, t5.report, 0)
FROM ....

このようにすることで、null があれば、t1.report + t5.report、t1.report、t5.report、0の順番で値を参照していくことができる。

SELECT COALESCE(t1.report + t5.report, t1.report, t5.report, 0)

このような場合、0 になるケースは、t1.report、t5.reportどちらもnullの場合になる。