【发布时间】:2015-04-23 11:23:36
【问题描述】:
所以我试图在查询中获取不同 pid 的数量,但返回的值是错误的。
这是我尝试做的:
$ad->getcodes()->groupby('pid')->distinct()->count()
什么返回值“2”,而它应该返回的值应该是“1”。
作为一种解决方法,我正在这样做:
count($ad->getcodes()->groupby('pid')->distinct()->get())
什么工作正常并返回“1”
是否有任何规则使 count 和 distinct 不能在同一个查询上?我发现解决方法有点“重”,我想让原始查询工作:(
【问题讨论】:
-
您在数据库的示例表中有什么?你想达到什么目标?现在您可能应该在
pid列中获得不同值的数量,因此如果您的表中有 2 条记录 - 一条 pid 1,第二条 pid 2,count 应该返回 2。 -
你可以这样简单地用count替换get:
$count = DB::table('tablename')->count(DB::raw('DISTINCT pid'));也可以这样做:DB::table('tablename')->distinct('pid')->count('pid');
标签: laravel count eloquent distinct