[MySQL]nullを含むフィールドのconcat

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

わけのわからない例でごめんなさい。

スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1