2013-05-02 2 views
0

Мой запрос генерирующего из коллекции Magento являетсяMagento Load Collection Использование Заказывайте

$userModel = Mage::getSingleton('user/user')->getCollection()->addFieldToFilter('user_id', array('in' => array($User_Id))); 

SELECT `main_table`.user_name FROM `user_table` AS `main_table` WHERE (user_id IN('1', '3', '2')); 

Я хочу использовать этот запрос:

SELECT `main_table`.user_name FROM `user_table` AS `main_table` WHERE (user_id IN('1', '3', '2')) ORDER BY FIELD(user_id , 1,3,2); 

Так что он будет отображать имя пользователя в том же порядке когда вводятся идентификаторы. т. Е. "1,3,2"

Какой метод используется в Magento для загрузки коллекции с использованием ORDER BY?

Заранее благодарен!

+0

Кроме того, если «Order By» не представляется возможным в коллекции Magento, это желательно, чтобы написать свой собственный пользовательский запрос, если есть несколько коллекций для загрузки и изменения их в соответствии с пользовательскими требованиями? – Slimshadddyyy

+0

Возможный дубликат: http://stackoverflow.com/questions/3158424/how-to-add-order-by-when-loading-a-magento-model – seanbreeden

+0

@seanbreeden function setOrder ($ attribute, $ dir = 'desc ') использует параметр ASC или DESC, а то, что я обсуждаю, - это моя функция sql, которая является ORDER BY FIELD (http://jonahellison.com/mysql-order-by-field-group_concat). Так можно ли использовать функцию выше mysql для упорядочивания данных в соответствии с пользовательской потребностью usign Magento Collection? – Slimshadddyyy

ответ

0

Вы можете получить Zend_Db_Select от Collection, а затем добавить заказ на Zend_Db_Select как этот вопрос:

Zend DB Select : ORDER BY FIELD('id',some_array) - how?

+0

какая разница, чтобы использовать код выше и использовать код пользовательского запроса magento? Как выполнить несколько записей с использованием метода fetch() в magento? – Slimshadddyyy

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