Это может быть очень простая вещь. Проверьте обычный запрос SQL нижеZend Framework - применение порядка по вложенному запросу
(select * from shopping order by shopping_id desc limit 5) order by RAND()
Этот запрос успешно работает в MySQL - не уверен, если это правильный способ сделать это - но это работает. Он получает последние 5 идентификаторов из торгового стола и произвольно заказывает их каждый раз
Я хочу добиться этого в Zend. Я не уверен, как выполнить первую часть, а затем применить предложение RAND к результатам - то, что я ниже, не делает этого.
$select = $this->select() ->from(array('sh'=>'shopping')) ->order('shopping_id desc') ->limit(5) ->order('RAND()');
Я уверен, что родной Zend_Db не будет делать подзапросы. Вы можете легко уйти от 'в заказ по RAND()', а затем пусть ваш Rowset код/PHP рандомизации 5 записей ... – gnarf
@gnarf Zend_Db_Select может очень сделать подзапросы. Вам просто нужно поместить их в запрос с помощью Zend_Db_Expr. – Gordon
Я буду следовать предложению @ gnarf, считая «ORDER BY RAND()» обходить кеш запросов. – leek