2015-04-08 160 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對象