2016年9月14日水曜日

CakePHP or and

    $opt = array('conditions' => array('OR'=>array(
                                            array('id' => '1' , 'title'=>'タイトル'),
                                            array('id' => '2'))
                                                  )
                                      );
    /*
      SELECT `Post`.`id`, `Post`.`title`, `Post`.`body`, `Post`.`created`, `Post`.`modified` FROM `test_db`.`posts` AS   `Post` WHERE ((((`id` = 1) AND (`title` = 'タイトル'))) OR (`id` = 2))
    */
・出身地が「佐賀県」かつ現在地が「東京都」
・出身地が「岡山県」かつ現在地が「長崎県
'conditions' => array(
    'OR' => array(
        // 条件1。arrayに複数の条件を書くことで「AND」になる
        array('User.birthPlace' => '佐賀県',
            'User.address' => '東京都'
        ),
        // 条件2。arrayに複数の条件を書くことで「AND」になる
        array('User.birthPlace' => '岡山県',
            'User.address' => '長崎県'
        ),
    ),
),
array(
    'OR' => array(
        array('Company.name' => 'Future Holdings'),
        array('Company.city' => 'CA')
    ),
    'AND' => array(
        array(
            'OR' => array(
                array('Company.status' => 'active'),
                'NOT' => array(
                    array('Company.status' => array('inactive', 'suspended'))
                )
            )
        )
    )
)
SELECT `Company`.`id`, `Company`.`name`,
`Company`.`description`, `Company`.`location`,
`Company`.`created`, `Company`.`status`, `Company`.`size`

FROM
   `companies` AS `Company`
WHERE
   ((`Company`.`name` = 'Future Holdings')
   OR
   (`Company`.`city` = 'CA'))
AND
   ((`Company`.`status` = 'active')
   OR (NOT (`Company`.`status` IN ('inactive', 'suspended'))))

0 件のコメント:

コメントを投稿