(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

CakePHP2実践入門 (WEB+DB press plusシリーズ) [ 安藤祐介 ]

価格:3,110円
(2019/9/21 06:25時点)
感想(0件)

スポンサードリンク

コメントを残す

サブコンテンツ

このページの先頭へ