2013-09-25 2 views
0

Я хочу создать свой запрос с помощью cdbcriteria в YII, без использования createCommand.создать cdbcriteria для внутреннего запроса в yii?

select count(*) count 
from (select id,player_id,goals_scored,if(goals_scored>0,@counter:[email protected]+1,@counter:=0) count from player_stats, (select @counter:=1) b 
where player_id='1000099' and @counter>0 order by id desc) f 

Как создать правильный запрос SQL в синтаксисе YII?

ответ

1

Зачем вам нужно CDbCriteria? Вы, вероятно, потребуется DAO и что-то вроде этого:

$count = Yii::app()->db->createCommand(" 
select count(*) count 
from (select id,player_id,goals_scored,if(goals_scored>0,@counter:[email protected]+1,@counter:=0) count from player_stats, (select @counter:=1) b 
where player_id='1000099' and @counter>0 order by id desc) f 
")->queryScalar(); 

Обычно CDbCriteria используется с моделями ActiveRecord, но я не вижу, как это было бы применимо в данном конкретном случае. Если нет, укажите полный образец кода.

+0

Я знаю, что используя createCommand, я могу это сделать. Но я хочу сделать это с CDbCriteria или любым другим вариантом, кроме createCommand. – unknownbits

+0

Я думаю, что вы можете сделать. Решение @Veseliq верное. Он был быстрее меня: P –

+0

Но я не хочу делать это с помощью createCommand. Пожалуйста, есть ли другой способ сделать это в YII? – unknownbits

Смежные вопросы