【SQL】 NULLを四則演算した結果
SQLで数値とNULLを四則演算すると、NULLになります。
例えば NULL+1 をやってみると
mysql> SELECT NULL+1; +--------+ | NULL+1 | +--------+ | NULL | +--------+ 1 row in set (0.01 sec)
ってな感じ。
その仕様を忘れている時があって(というか、NULL値をとりうるフィールドをそのまま演算に使おうとして)ハマる事がたまにあります。
ちなみに、NULLを0として扱いたい時ってままあると思うのですが、そういう時はどうすれば良いかというと、
mysql> SELECT COALESCE(NULL,0)+1; +--------------------+ | COALESCE(NULL,0)+1 | +--------------------+ | 1 | +--------------------+ 1 row in set (0.00 sec)
このように、COALESCE()関数を使えば、NULLをナニカシラの値に変換することができます。