2016-07-27 2 views
1

В моей модели у меня есть функция для генерации случайного списка идентификаторов. как создать такой запрос в моей модели?сложный запрос в 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)); 
Смежные вопросы