2015-04-08 7 views
0

Я хотел бы отфильтровать коллекцию сгруппированными предложениями. В SQL это будет выглядеть что-то вроде:Фильтр коллекции Magento

SELECT * FROM `my_table` WHERE col1='x' AND (col2='y' OR (col2='z' and col4='P' and col5='q') OR (col2='x' and col4='r')) 

Как можно «перевести» это фильтрации коллекции с ->addFieldToFilter(...)?

Спасибо!

ответ

0

Если запрос был похож на

SELECT * FROM `my_table` WHERE col1='x' AND (col2='y' OR col2='z' OR col4='P') 

Вы можете использовать следующие:

$collection->addFieldToFilter('col1', 'x')->addAttributeToFilter(
    array(
     array('attribute'=>'col2', 'eq'=>'y'), 
     array('attribute'=>'col2', 'eq'=>'z'), 
     array('attribute' => 'col4', 'eq' => 'P') 
    ) 
) 

Но в вашем случае для такого сложного запроса Вы должны использовать Zend_Db_Select

Смежные вопросы