スポンサードリンク
findを使う際に
ORで条件指定したいときがあって
ORの条件を出すのに苦労したので
その覚書です。
スポンサードリンク
findでOR条件を使う
違うフィールドでのOR条件
例えば以下のようなSQL文を出したいとき
SELECT * FROM posts AS Post WHERE ((user_id = 1) OR (created = '2013-12-18'))
findのconditionsでORを連想配列として指定します。
$this->Post->find('all', array( 'conditions' => array( 'OR' => array('user_id' => 1, 'create' => '2013-12-18') ) ) )
同じフィールドでのOR条件
例えば以下のようなSQL文を出したいとき
SELECT * FROM posts AS Post WHERE ((user_id = 1) OR (user_id = 3))
findのconditionsでORを連想配列として指定します。
$this->Post->find('all', array( 'conditions' => array( 'OR' => array( array('user_id' => 1), array('user_id' => 3) ) ) ) )
ANDは自動で付くので
ORを使いたいときは忘れてしまいます。
(参考)
CakePHP Cookbook v2.x データを取得する
スポンサードリンク