Yii2 去重查询:使用 distinct() 方法
在 Yii2 中,可以使用 'distinct()' 方法进行去重查询。该方法可以应用于 ActiveQuery 或 QueryBuilder 对象中的查询语句。
例如,假设我们有一个名为 'User' 的模型,其中有一个名为 'username' 的字段,我们想要查询出所有不重复的用户名,可以使用以下代码:
$users = User::find()->select('username')->distinct()->all();
这将返回一个包含所有不重复用户名的数组。
如果我们想要在查询中使用多个字段进行去重,可以在 'select()' 方法中指定多个字段,如下所示:
$users = User::find()->select(['username', 'email'])->distinct()->all();
这将返回一个包含所有不重复用户名和电子邮件的数组。
如果我们想要在查询中使用条件进行去重,可以在 'where()' 方法中指定条件,如下所示:
$users = User::find()->select('username')->where(['status' => 1])->distinct()->all();
这将返回一个包含所有状态为 1 的不重复用户名的数组。
需要注意的是,'distinct()' 方法只能应用于查询结果中的列,而不能应用于整个查询语句中的所有列。如果我们想要在查询中使用多个列进行去重,需要在 'select()' 方法中同时指定这些列。
原文地址: https://www.cveoy.top/t/topic/lQt2 著作权归作者所有。请勿转载和采集!