在我的模型中,我有一个生成随机ID列表的功能。如何在我的模型中创建这样的查询?
select * from `table`
where (ID % 1000) = floor(rand() * 1000)
AND `type`='11'
order by rand()
limit 40
我知道我可以使用query builder
方式,但想知道是否有办法使用ABC::model()->findAll()...
答案 0 :(得分: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);
答案 1 :(得分:0)
嘿,你可以试试这个
$model = ABC::model()->findAll(array("condition"=>"type = 11 AND (ID % 1000 = floor(rand() * 1000))","order"=>"rand()","limit" => 40));