【发布时间】:2017-10-09 16:41:56
【问题描述】:
我需要编写一个 ActiveRecord 查询,在其中获取行的所有字段,在一个字段中没有重复。
示例:这是一张书架。我想获取行的所有数据 不同的isbn。应该从重复中取出第一行。结果应该是 id 为 1,2,4 的行
id | title | isbn
--- | ------- | ------
1 | hello | 1001
2 | world | 1002
3 | this | 1002
4 | is | 1003
5 | funny | 1003
我的第一次尝试是
$books = Books::find()->select('isbn')->distinct()->all();
但这仅填充 $books[0], $books[1], ... 中的 isbn 字段。
这可以使用 Yii2 ActiveRecord 吗?
【问题讨论】:
-
ActiveQuery的select方法告诉Yii选择哪些列,因此在这种情况下它不是您需要的。您希望查询如何处理其他列中的数据?那么,如果它选择了所有列,并且只返回isbn的不同值,它应该如何处理标题和ids? -
我想让 $books 填充 id 1、2 和 4 的所有字段,例如$book[0]=[1,'hello', 1001],... 而不仅仅是 isdn 字段。
标签: php mysql activerecord yii2