【CakePHP2】findの条件に「NULL」「NOT NULL」を使う方法
2017/12/09
タイトルのまんまですが、CakePHP2のfindの条件にNULLを使う方法を忘備録としてポストします。
CakePHP2.3.10で確かめました。
NULLを条件としたfind
IS NULL の場合
SQLでいうところの、IS NULL の方法。
単純に、 conditions に配列で指定するだけ。
1 2 3 4 5 6 7 8 |
$data = $this->Model->find( 'all', array( 'conditions' => array('Model.id' => NULL), 'fields' => null, 'order' => null, 'recursive' => 1, ) ); |
これで WHERE Model.id IS NULL というSQLとなります。
NOT NULL の場合
NOT NULL の場合は、ちょっとだけひねって、"NOT"の2次元配列で条件を作成。
1 2 3 4 5 6 7 8 9 10 11 |
$data = $this->Model->find( 'all', array( 'conditions' => array( 'NOT' => array( 'Model.id' => NULL) ), 'fields' => null, 'order' => null, 'recursive' => 1, ) ); |
これで、WHERE Model.id IS NOT NULL というSQLとなります。
以前ポストした「IN」「NOT IN」を条件とした find と基本的に同じ書き方ですね。