在magento集合中过滤?

时间:2013-03-16 20:39:12

标签: mysql magento collections

以下代码:

    $collection->addAttributeToFilter(array(
                   array('attribute'=> 'someattribute','like' => 'value'),
                   array('attribute'=> 'otherattribute','like' => 'value'),

            ));

创建一个类似的查询:

         where  ( someattribute like 'value' OR otherattribute like 'value' )

但我怎么能在这个OR条件下添加一个AND条件?我的意思是这样的:

        where ( (someattribute like 'value' AND someattribute  != 'another value')  OR otherattribute like 'value' )

我在构建我的集合时多次使用addAttributeToFilter,但是,我尝试使用以下代码添加上述条件:

 $collection->getSelect->where( "(someattribute like 'value' AND someattribute  != 'another value')  OR otherattribute like 'value' )"  ) 

但它不起作用。也许不可能使用addAttributeToFilter AS以及同一个集合的位置?

非常感谢提前

2 个答案:

答案 0 :(得分:0)

好吧,它正在工作......我添加的条件中有一些错误

所以,你可以在同一个magento集合上使用addAttributeToFilter和“where”。无论如何,也许它会帮助其他人,这个解决方案,但仍然想知道你是否可以使用addAttributeToFilter复制上述条件......

答案 1 :(得分:0)

根据定义:

->addAttributeToFilter(array(
               array('attribute'=> 'someattribute','like' => 'value'),
               array('attribute'=> 'otherattribute','like' => 'value'),

        )

这是一个OR选择,使用AND:

 ->addAttributeToFilter(array('attribute'=> 'someattribute','like' => 'value'))->addAttributeToFilter(array('attribute'=> 'otherattribute','like' => 'value'))