像Cakephp中的OR运算符

时间:2013-07-05 04:38:50

标签: sql cakephp cakephp-2.0 cakephp-2.1

我是cakephp的新手,我想将以及之类的添加到我现有的查询中。

我想做出这样的条件

WHERE  'Message.user_id = Contact.user_id' AND 'Message.mobileNo LIKE'=>"%Contact.mobileNo" OR LIKE'=>"%Contact.homeNo" OR LIKE'=>"%Contact.workNo"

我的查询是

$this->bindModel(array(
        'belongsTo' => array(
            'Contact' => array(
                'className' => 'Contact',
                'foreignKey' => false,
                'conditions' => array(
                    'Message.user_id = Contact.user_id',
                    'Message.mobileNo = Contact.mobileNo'
                ),
                'type' => 'inner'
            )
        )
    ), false); 

      $this->find('all', array('conditions' => array(),
        'fields' => array('DISTINCT mobileNo')));

2 个答案:

答案 0 :(得分:1)

您可以在现有查询中使用以下内容。

$this->find('all', array(
    'conditions' => array(
        'OR' => array(
            array(
                "Message.mobileNo LIKE" => "%Contact.mobileNo",
            ),
            array(
                "Message.mobileNo LIKE" => "%Contact.homeNo",
            ),
            array(
                "Message.mobileNo LIKE" => "%Contact.workNo",
            )
        )
    ),
    'fields' => array('DISTINCT mobileNo')
));

您也可以参考Detail Document for simple search with like

答案 1 :(得分:0)

你可以使用:for“like”

  

$这 - >后>发现( “所有”,阵列( '状态'=>阵列(“作者   LIKE'=> “中的广告%”)));

上面的查询会向您提供表格帖子中的数据,其中作者姓名以“ad”开头。

表示“或”

  

$这 - >后>发现( “所有”,阵列( '状态'=>阵列( “OR”=>阵列(“作者   LIKE'=>“ad%”,'作者LIKE'=>“bo%”))));

上面的查询将为您提供表格帖子中的数据,其中作者姓名以“ad”或“bo”

开头

blog帖子对您也有用!