CakePHP多个OR条件

时间:2018-10-16 05:55:38

标签: php cakephp cakephp-1.3

我希望创建一个简单的查询,但是我似乎无法弄清楚如何使用Cakes条件(cake 1.3)来进行查询,我想做的事情很简单,在SQL中只是

SELECT * FROM table WHERE firstvalue != '' OR secondvalue != ''

因此,基本上只有在firstvalue或second值中都有一个值时才返回row。

此刻我有

$conditions = array(
    "NOT" => array(
        'firstvalue' => ''
    )
);

这对于第一个值很好用,但是如果我尝试对其添加任何内容,它仍然仅返回第一个值的结果

2 个答案:

答案 0 :(得分:1)

两种解决方法:

$conditions = array(
    'OR' => array(
        array('NOT' => array('firstvalue' => '')),
        array('NOT' => array('secondvalue' => ''))
    )
);

或者,利用“ NOT a OR NOT b” ==“ NOT(a AND b)”这一事实:

$conditions = array(
    'NOT' => array(
        array('firstvalue' => ''),
        array('secondvalue' => '')
    )
);

答案 1 :(得分:0)

要在OR条件下添加多个字段,必须将这些字段写入数组。

就像

$conditions = array(
    "OR" => array(
        "NOT"=>array('firstvalue' => ''),
              array('secondvalue'='')
    )
   )
);

我希望它对您有用。