遗留项目使用yii@1.1 。我想在CActiveRecord.
原始 sql 中的查询将是:
SELECT column
FROM table
WHERE some_id in (1, 32, 10)
当我直接查询数据库时它工作得很好。我得到了所有结果。
我class MyActiveRecord extends CActiveRecord通过 yii 中的以下方法将其映射到我的活动记录 ( ) 中:
public function getColumn(array $someIds): array
{
$idList = rtrim(implode(', ', $someIds), ', ');
$sql = "SELECT column FROM table WHERE some_id IN (:idList)";
$results = parent::model(__CLASS__)->findAllBySql(
$sql,
['idList' => $idList]
);
return array_column($results, 'column');
}
该代码有效,但奇怪的是它只获取第一个的结果some_id。我如何获取所有这些?
假设对于我的 id 1,我有 5 个结果,对于 32,我有 3 个结果,对于 10,我有 2 个结果,我预计总共有 10 条记录。
然而我只得到 yii 中 id 1 的 5 个结果。我究竟做错了什么?
(当我更改 id 的顺序时,始终只会获取第一个 id,而忽略其他 id。)
杨魅力
杨__羊羊