0

以下代码:

    $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 以及同一个集合的位置?

提前谢谢了

4

2 回答 2

0

根据定义:

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

        )

这是使用 AND 的 OR 选择:

 ->addAttributeToFilter(array('attribute'=> 'someattribute','like' => 'value'))->addAttributeToFilter(array('attribute'=> 'otherattribute','like' => 'value'))
于 2013-03-18T08:30:38.517 回答
0

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

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

于 2013-03-16T20:54:03.240 回答