yii自定义查询和CSqlDataProvider
有人能告诉我如何使用CSqlDataProvider(yii框架(php))运行这个查询吗 我可以像下面那样做,但是yii自定义查询和CSqlDataProvider,sql,yii,ranking,Sql,Yii,Ranking,有人能告诉我如何使用CSqlDataProvider(yii框架(php))运行这个查询吗 我可以像下面那样做,但是 $sqlProvider = new CSqlDataProvider(' SELECT @rank:=@rank+1 AS rank, nameAndFam FROM user '); 无法初始化设置@rank=0在上述命令之前 我想给我的选择排序,我认为这是个好办法 提前感谢您的回复:)您可以尝试使用YII CreateComnd from Database Acces
$sqlProvider = new CSqlDataProvider('
SELECT @rank:=@rank+1 AS rank, nameAndFam
FROM user
');
无法初始化设置@rank=0代码>在上述命令之前
我想给我的选择排序,我认为这是个好办法
提前感谢您的回复:)您可以尝试使用YII CreateComnd from Database Access OBject(DAO),它将提供最低级别的数据库操作,您可以创建任何类型的查询
$sql1 = 'SET @rank=0;';
$sql2 = 'SELECT @rank:=@rank+1 AS rank, fruit, amount
FROM sales
ORDER BY amount DESC';
$cmd1 = Yii::app()->db->createCommand($sql1);
$cmd2 = Yii::app()->db->createCommand($sql2);
$cmd1->execute();
$result = $cmd2->query();
之后,您可以使用foreach循环来循环通过该查询返回的对象数组
您可以创建单独的函数,例如:
$cmd->select ='SELECT @rank:=@rank+1';
这种方式将使代码更具可读性,但因为您只需要完成这项工作,所以我只提供了纯的、非优化的方式。
希望这能帮你解决这个问题
$cmd->select ='SELECT @rank:=@rank+1';