MySQLでNULLの時に値を返したい場合はifnullを使う。
2014年4月23日
例えば、年齢を取得したいとして、ageを入力してない人がいる場合にnullが取れるとアプリ側で、よけいな処理を入れるか、最悪エラーになる場合も。
(そもそもuserテーブルを作成する時にageにdefaultを指定すればいいんですが・・)
SELECT age FROM user;
上のSQL文でageを取ると、数値とnullが混ざって取れるなんていう非常に悪い設計だった場合、、
SELECT ifnull( age, 0 ) FROM user;
こんな感じで、ifnullを使うと、ageがnullだった場合に0が返ります。
ま、上の例は微妙ですが、使い道は色々ありそうなのでメモ。
(基本的には、default値を指定したテーブルを最初から作ろうw)