null値との四則演算結果は必ずnull
MySQL のNULL ではまったことあれこれ - Slow Dance
http://dev.mysql.com/doc/refman/5.1/ja/problems-with-null.html
↑この辺りに分かりやすく記載されていますが、null値との四則演算結果は必ずnull。
誰もが一度は引っ掛る所で、私は1回/年の頻度で引っ掛ります。
mysql> select null+1; +--------+ | null+1 | +--------+ | NULL | +--------+ 1 row in set (0.00 sec) mysql> select null*1; +--------+ | null*1 | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
coalesce()で0に変換できます
http://dev.mysql.com/doc/refman/5.1/ja/comparison-operators.html
null値を0として演算したい場合、coalesce()で0に変換できます。
例えば、先程のnull値を返された和と積の演算は、次のように書けます。
mysql> select coalesce(null,0)+1; +--------------------+ | coalesce(null,0)+1 | +--------------------+ | 1 | +--------------------+ 1 row in set (0.00 sec) mysql> select coalesce(null,0)*1; +--------------------+ | coalesce(null,0)*1 | +--------------------+ | 0 | +--------------------+ 1 row in set (0.00 sec)
coalesce()って、何て読むの?
読めないことをあまり気にしていませんが