2016-04-14 76 views
0

我想要我的结果来自name比赛description比赛。如何结合产品集合中的SQL OR条件? Magento的?

$custom_collection = Mage::getModel('catalog/product')->getCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToSelect('type') 
    ->addAttributeToSelect('price') 
    ->addAttributeToFilter(array('attribute' => 'name', 'like' => '%' . $queryText . '%')) 
    ->addAttributeToFilter(array('attribute' => 'description', 'like' => '%' . $queryText . '%')) 
    ->addFieldToFilter('attribute_set_id', array(11, 4)); 

这些都是我需要合并

->addAttributeToFilter(array('attribute' => 'name', 'like' => '%' . $queryText . '%')) 
->addAttributeToFilter(array('attribute' => 'description', 'like' => '%' . $queryText . '%')) 
+1

你可以用这种方式WHERE((名称LIKE '值')或(描述LIKE'value')OR(anotherattribute LIKE'value')).....请参阅此链接http://magento.stackexchange.com/questions/7908/multi-conditionals-or-and-and-inside-and -in-addattributetofilter –

回答

0

您可以使用下面的代码为OR条件的两个具体线路。

$custom_collection->addAttributeToFilter(
     array(
      array('attribute'=> 'name','like' => '%' . $queryText . '%'), 
      array('attribute'=> 'description','like' => '%' . $queryText . '%') 
     ) 
    ); 
0

尝试以下操作:

$collection->addAttributeToFilter(
array(
    array('attribute'=> 'name','like' => ''%' . $queryText . '%''), 
    array('attribute'=> 'description','like' => ''%' . $queryText . '%''), 
    ) 
); 

这将输出一个WHERE的格式条款:

WHERE ((name LIKE ''%' . $queryText . '%'') OR (description LIKE ''%' . $queryText . '%'') 
相关问题