
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を使いたいときは忘れてしまいます。
