这是目标sql查询: ......按field1 asc,price_index.min_price desc
排序这是我的代码
$productCollection->getCollection()
->setOrder('field1', 'asc')
->setOrder('price', 'desc')
然而,在我的结果中,价格始终是第一个订购字段。有人可以帮我吗,拜托?非常感谢你
答案 0 :(得分:4)
$collection->getSelect()
->order('field1 asc');
或按多个排序:
$collection->getSelect()
->order(array('field1 asc', 'price desc'));
答案 1 :(得分:3)
要使用多个字段进行排序,您可以将调用链接到Collection的方法addAttributeToSort()
$productCollection->getCollection()
->addAttributeToSort('field1', 'asc')
->addAttributeToSort('price', 'desc');
答案 2 :(得分:2)
关于自定义资源集合,请使用addOrder
:
Mage::getModel('module/model')->getCollection()
->addOrder('first', 'ASC')
->addOrder('second', 'DESC')
->addOrder('other', 'DESC');
答案 3 :(得分:0)
使用:
productCollection->getSelect()->reset(Zend_Db_Select::ORDER);
然后:
productCollection->getSelect()
->order(.......)
该代码将解决此问题^ ^
答案 4 :(得分:0)
要对多个字段进行排序,您可以使用
$collection = Mage::getModel(‘module/model_name’)->getCollection()
->addAttributeToSort(‘order’, ‘ASC’)
->addAttributeToSort(‘last_name’, ‘ASC’)
->addAttributeToSort(‘first_name’, ‘ASC’);