我正在尝试基于产品ID数组创建一个产品集合,并根据ID数组对集合进行排序。
$productIds = array(318,310,311);
$collection = Mage::getModel('catalog/product')
->getCollection()
->setOrder('entity_id', 'asc') // This will not do the job
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('entity_id', array(
'in' => $productIds,
));
我想对收集的数据进行排序,因为它们出现在$productIds
数组中,318, 310, 311
但是上面的代码将返回收集的排序,如310,311, 312
。
如果不使用下面给出的简单MySQL查询,是否可以做到这一点?
SELECT *
FROM catalog_product_entity
WHERE entity_id IN (318,
310,
311)
ORDER BY FIELD(entity_id, 318, 310, 311);