簡體   English   中英

PHP Yii標准選擇帶限制的隨機記錄

[英]PHP Yii criteria select random records with limit

我在問題模型中有1000個問題。 如何使用Yii標准隨機選擇10000個問題中的50個問題?

我使用Mysql作為Db

到目前為止,我已嘗試過以下內容

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

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

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

(從@topher回復更新)

在大量行上使用此技術需要很長時間( ):

只要有10000行,排序行的開銷就變得很重要。

在這種情況下,請參考以下答案:

最簡單的解決方案:rand的mysql命令

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

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

只要有10000行,排序行的開銷就變得很重要。

如何有效地獲取隨機行已經得到了回答: MySQL快速從600K行中選擇10個隨機行

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM