为yii中的内部查询创建cdbcriteria?

为yii中的内部查询创建cdbcriteria?,yii,Yii,我想用YII中的cdbcriteria创建我的查询,而不使用createCommand。 select count(*) count from (select id,player_id,goals_scored,if(goals_scored>0,@counter:=@counter+1,@counter:=0) count from player_stats, (select @counter:=1) b where player_id='1000099' and @counte

我想用YII中的cdbcriteria创建我的查询,而不使用createCommand。

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

如何用YII语法创建正确的SQL查询?

为什么需要
CDbCriteria
?您可能需要以下内容:

$count = Yii::app()->db->createCommand("
select count(*) count
from (select id,player_id,goals_scored,if(goals_scored>0,@counter:=@counter+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模型一起使用,但我不知道它在这种特殊情况下如何适用。如果没有,请显示完整的代码示例。

我知道使用createCommand可以做到这一点。但是我想用CDbCriteria或者其他任何选项,除了createCommand,我想你可以做到。@Veseliq解决方案是正确的。他比我快:但我不想用createCommand做这件事。请问,在YII中是否有其他方法可以做到这一点?您希望如何使用
CDbCriteria
?该对象与Yii的
AR
紧密相连,不适用于标量值。显示更多代码。@Veseliq那么,如果不在YII中使用createCommand,我们就不能这样做吗?