PHP Yii标准选择带限制的随机记录

时间:2014-04-01 09:41:38

标签: php yii criteria

我在问题模型中有1000个问题。 如何使用Yii标准随机选择10000个问题中的50个问题?

我使用Mysql作为Db

到目前为止,我已尝试过以下

$criteria = new CDbCriteria;
$criteria->limit = 50;
$criteria->select = array('id');
$criteria->addCondition('chapter = xyz');

3 个答案:

答案 0 :(得分:4)

如果你使用MySQL,那么它是:

$criteria->order = 'RAND()';

(从@topher回复更新)

在大量行上使用此技术需要很长时间(source):

  

只要有10000行,就会对行进行排序   变得很重要。

在这种情况下,请参考以下答案:

答案 1 :(得分:3)

最简单的解决方案:按rand

排序mysql
$criteria->order('RAND()');

但是来自http://jan.kneschke.de/projects/mysql/order-by-rand/

  

只要有10000行,排序行的开销就变得很重要。

如何有效地获取随机行已经得到了回答:MySQL select 10 random rows from 600K rows fast

答案 2 :(得分:0)

$criteria->order(array('RAND()'));