MySQLのTips
MySQLで、文字列を結合するときにはCONCAT()関数が使えるが、引数にひとつでもNULLが存在すると返り値がNULLになってしまう。
そこで、NULLがありえるフィールドを結合するときには、そのフィールドをIFNULL()関数で囲ってやるといい。
CONCAT()については「MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.2 文字列関数」を参照
IFNULL()については「MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.1.4 フロー制御関数」を参照
例
SELECT CONCAT(IFNULL(name_l, "名無しの"), IFNULL(name_f, "権兵衛さん")) as name from users
ちなみに数値計算でも計算式にNULLを含むとNULLになってしまうが、同様にIFNULL()で0を指定してやれば計算できる。
例
SELECT (age + IFNULL(saba, 0)) as trueage from users
わけのわからない例でごめんなさい。