2016-07-27 94 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));