在我的模型中,我有一个生成ID随机列表的函数。如何在我的模型中创建这样的查询?
select * from `table` where (ID % 1000) = floor(rand() * 1000) AND `type`='11' order by rand() limit 40
我知道我可以使用query builder的方式,但我想知道是否有一种方式可以使用类似ABC::model()->findAll()...的东西
query builder
ABC::model()->findAll()...
cl25kdpy1#
您始终可以使用CDbCriteria
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);
uqdfh47h2#
您可以尝试以下操作:
$model = ABC::model()->findAll( array( "condition"=>"type = 11 AND (ID % 1000 = floor(rand() * 1000))", "order"=>"rand()", "limit" => 40 ) );
2条答案
按热度按时间cl25kdpy1#
您始终可以使用
CDbCriteria
uqdfh47h2#
您可以尝试以下操作: