(CakePHP 2.x) findでOR条件を使う

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

CakePHP2 実践入門 (WEB DB PRESS plus)

新品価格
¥3,110から
(2015/1/27 23:08時点)

スポンサードリンク

コメントを残す

サブコンテンツ

このページの先頭へ