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

PHP Yii标准选择具有限制的随机记录,php,yii,criteria,Php,Yii,Criteria,在问题模型中,我有1000个问题。 如何使用Yii标准从10000个问题中随机选择50个问题 我使用Mysql作为数据库 到目前为止,我已经尝试了以下方法 $criteria = new CDbCriteria; $criteria->limit = 50; $criteria->select = array('id'); $criteria->addCondition('chapter = xyz'); 如果您使用的是MySQL,那么它是: $criteria->or

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

我使用Mysql作为数据库

到目前为止,我已经尝试了以下方法

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

如果您使用的是MySQL,那么它是:

$criteria->order = 'RAND()';
(更新自@topher-answer)

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

一旦您有10000行,排序行的开销就会减少 变得很重要

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


    • 最简单的解决方案:mysql的order by rand

      $criteria->order('RAND()');
      
      然而从

      一旦有10000行,排序行的开销就变得很重要


      如何有效地获取随机行已经得到了回答:

      您使用的是什么数据库?需要指出的是,这一点很重要!
      $criteria->order(array('RAND()'));