【发布时间】:2016-10-09 12:12:39
【问题描述】:
我正在使用 Yii2,对于我的数据表,我需要分类数据并限制每个类别的数据,为了获得结果,我使用了 findBySql(),但它总是从该模型返回完整的结果集。
它工作得很好,但我想将它与模型一起使用,这样我就可以拥有实例
我只想让下面的查询给我一个给定 SQL 语句的 yii\db\ActiveQuery 实例。
我还需要实例,所以不需要简单的数组。
我希望每个类别 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();
【问题讨论】:
-
乍一看,我觉得从这种类型的选择中获得模型校正很奇怪..但无论如何..请解释什么是问题..你有一个错误.?你有错误的结果? ...你没有结果?看过 $modelTest 的内容了吗?
-
它给了我 sql 的 PDO 异常。但在 phpmyadmin 中工作正常。所以只是 Yii findBySql() 的问题。
-
可以在 phpadmin 中工作的明显 .. 你是一个 shell sql 命令 .. 但这不像在 yii2 中那样工作 .. 请显示你在 yii2 中的确切错误
标签: mysql yii yii2 yii2-advanced-app