Hatena::ブログ(Diary)

end0tknrのkipple - web写経開発 RSSフィード

2012-03-08

null値との四則演算結果は必ずnullなので、coalesce()で0に変換

null値との四則演算結果は必ずnull

MySQL のNULL ではまったことあれこれ - LukeSilvia’s diary

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()って、何て読むの?

読めないことをあまり気にしていませんが

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/end0tknr/20120308/1331189096
リンク元