我正在使用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();
答案 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();