Yii中的复杂查询

时间:2016-07-27 11:16:32

标签: php mysql yii

在我的模型中,我有一个生成随机ID列表的功能。如何在我的模型中创建这样的查询?

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

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

之类的东西

2 个答案:

答案 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));