Yii2中的findBySql不返回预期的结果集

时间:2016-10-09 12:12:39

标签: mysql yii yii2 yii2-advanced-app

我正在使用Yii2并且对于我的数据表我需要数据作为分类和限制每个类别的数据,为了实现它的结果我使用了findBySql()但它始终从该模型返回完整的结果集。

它运作完美,但我想将它与模型一起使用,以便我可以拥有实例

我只想跟随查询给我yii \ db \ ActiveQuery实例和给定的SQL语句。

我也需要实例,所以只需要简单的数组结果。

我希望每个类别ID或ID最多包含10行。

这是sql

$sql = 'SELECT *
FROM (
SELECT t.* , @currcount := IF( @currvalue = t.id, @currcount +1, 1 ) AS rank, @currvalue := t.id AS whatever
FROM test t
ORDER BY t.id ASC
) AS whatever';

$modelTest = Test::findBySql($sql)->all();

1 个答案:

答案 0 :(得分:0)

请使用数据库访问对象 示例:

$sql = 'SELECT *
FROM (
SELECT t.* , @currcount := IF( @currvalue = t.id, @currcount +1, 1 ) AS rank, @currvalue := t.id AS whatever
FROM test t
ORDER BY t.id ASC
) AS whatever';

$data= Yii::$app->db->createCommand($sql)
            ->queryAll();