2016-07-27 7 views
1

In meinem Modell habe ich eine Funktion, um eine zufällige Liste von IDs zu generieren. Wie erstelle ich eine Abfrage in meinem Modell?komplizierte Abfrage in Yii

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

Ich weiß, dass ich die query builder Art und Weise nutzen könnten, aber frage mich, ob es eine Möglichkeit, so etwas wie ABC::model()->findAll()... verwendet, ist

Antwort

2

Sie können jederzeit verwenden 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

Hey Sie dieses

versuchen
$model = ABC::model()->findAll(array("condition"=>"type = 11 AND (ID % 1000 = floor(rand() * 1000))","order"=>"rand()","limit" => 40));