這可能是一件非常簡單的事情。看看下面Zend Framework - 在嵌套查詢上應用排序
(select * from shopping order by shopping_id desc limit 5) order by RAND()
這個查詢成功運行在MySQL中正常的SQL查詢 - 不知道這是做的正確的方式 - 但它的作品。它從購物表中獲得最後5個ID,並隨時隨機訂購它們
我想在Zend中實現這一點。我不知道如何執行第一部分,然後將RAND子句應用於結果 - 我下面的內容沒有這樣做。
$select = $this->select() ->from(array('sh'=>'shopping')) ->order('shopping_id desc') ->limit(5) ->order('RAND()');
我很確定原生Zend_Db不會進行子查詢。您可以輕鬆地通過RAND()命令離開,然後讓您的Rowset/PHP代碼隨機化5個條目... – gnarf 2010-03-24 16:47:18
@gnarf Zend_Db_Select可以做很多子選擇。你只需要將它們放入Zend_Db_Expr的查詢中即可。 – Gordon 2010-03-24 17:12:17
我會按照@ gnarf的建議考慮「ORDER BY RAND()」會繞過查詢緩存。 – leek 2010-03-24 18:51:04