No.124
【MySQL】【CakePHP】NULLの値を扱う制御関数
MySQLのNULL値制御関数をCakePHPで使用したい
MySQLでNULL値を制御してくれる関数にIFNULL
とCOALESCE
がある。
これをCakePHPの検索条件に使いたい場合、どうしたらいいかと言うと…
CaePHPのconditionsへの記載方法
そのまま書けばいい(ズコー
'conditions' => array(
'IFNULL(Model.column1, 0) >' => 0,
'COALESCE(Model.column2, Model.column3, 0) >' => 0,
エスケープされておかしくなることもないので気にせずガンガン書きまくろう。
参考
よく聞かれるのでコピペ用にIFNULL
とCOALESCE
の使い方をメモ。
IFNULL
第一引数の値がNULLだったら第二引数の値を返す。NULL以外は第一引数の値をそのまま返す。
IFNULL(値1, 値2)
IFNULL(4, 0) = 4
IFNULL(null, 0) = 0
COALESCE
引数の先頭からNULL以外の値を探しその値を返す。全部の引数がNULLだったらNULLを返す。
引数の数は任意。
COALESCE(値1, 値2, ....)
COALESCE(4, null, 0) = 4
COALESCE(null, 2, 0) = 2
COALESCE(null, null, 0) = 0
COALESCE(null, null, null) = null