2016-07-27 72 views
1

在我的模型中,我有一个函数来生成一个随机的ID列表。如何在我的模型中创建这样的查询?Yii中的复杂查询

select * from `table` 
    where (ID % 1000) = floor(rand() * 1000) 
    AND `type`='11' 
    order by rand() 
    limit 40 

我知道我可以使用query builder方式,但不知道是否有使用类似ABC::model()->findAll()...

回答

2

的方式您可以随时使用CDbCriteria

$criteria = new CDbCriteria(); 
$criteria->addCondition('`t`.`id` % 1000 = floor(rand() * 1000)'); 
$criteria->compare('`t`.`type`', 11); 
$criteria->order = 'rand()'; 
$criteria->limit = 40; 

ABC::model()->findAll($criteria); 
0

嘿,你可以试试这个

$model = ABC::model()->findAll(array("condition"=>"type = 11 AND (ID % 1000 = floor(rand() * 1000))","order"=>"rand()","limit" => 40));