【问题标题】:PHP Yii criteria select random records with limitPHP Yii 标准选择有限制的随机记录
【发布时间】:2014-05-12 00:02:45
【问题描述】:

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

我使用 Mysql 作为数据库

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

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

【问题讨论】:

  • 你用的是什么数据库?

标签: php yii criteria


【解决方案1】:

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

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

(更新自@topher 答案)

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

一旦有 10000 行,就需要对行进行排序 变得很重要。

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

【讨论】:

    【解决方案2】:

    最简单的解决方案:mysql的按ran​​d排序

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

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

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

    如何高效获取随机行已经回答:MySQL select 10 random rows from 600K rows fast

    【讨论】:

      【解决方案3】:
      $criteria->order(array('RAND()'));
      

      【讨论】:

      猜你喜欢
      • 2014-03-31
      • 2023-03-25
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      相关资源
      最近更新 更多