スポンサードリンク

CakePHP
CakePHP

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 データを取得する

スポンサードリンク