检索不同字段值
在此页面上
您可以通过对对象集合或查询构建器调用distinct()
方法来检索集合中文档的不同字段值。
要检索不同的字段值,请将查询过滤传递给where()
方法,并将字段名称传递给select()
方法。 然后,调用distinct()
以返回与查询过滤匹配的文档中所选字段的唯一值。
提示
有关查询筛选器的更多信息,请参阅读取操作指南中的检索与查询匹配的文档部分。
例子
从以下 Eloquent 和 Query Builder 标签页中选择,查看使用每个相应查询语法的同一操作的用法示例:
此示例将执行以下动作:
使用
Movie
Eloquent 模型表示sample_mflix
数据库中的movies
集合从
movies
集合中检索与查询筛选器匹配的文档的不同字段值打印非重复值
该示例在Movie
模型上调用以下方法:
where()
:匹配其中directors
字段的值包含"Sofia Coppola"
的文档select()
:检索匹配文档的imdb.rating
字段值distinct()
:检索所选字段的唯一值并返回值列表get()
:检索查询结果
$ratings = Movie::where('directors', 'Sofia Coppola') ->select('imdb.rating') ->distinct() ->get(); echo $ratings;
[[5.6],[6.4],[7.2],[7.8]]
此示例将执行以下动作:
通过从
DB
门面调用table()
方法来访问movies
集合从
movies
集合中检索与查询筛选器匹配的文档的不同字段值打印非重复值
该示例调用以下查询构建器方法:
where()
:匹配其中directors
字段的值包含"Sofia Coppola"
的文档select()
:检索匹配文档的imdb.rating
字段值distinct()
:检索所选字段的唯一值并返回值列表get()
:检索查询结果
$ratings = DB::table('movies') ->where('directors', 'Sofia Coppola') ->select('imdb.rating') ->distinct() ->get(); echo $ratings;
[5.6,6.4,7.2,7.8]
要了解如何编辑 Laravel 应用程序以运行用法示例,请参阅用法示例登录页面。