我想筛选一个包含分组子句的集合。在SQL中,这看起来像这样:
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(...)将其“翻译”为过滤集合?
谢谢!
发布于 2015-04-08 16:34:55
如果您的查询类似于
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
https://stackoverflow.com/questions/29507884
复制相似问题