2016-03-08 92 views
4

任何方式使这个查询工作使用laravel? DB :: raw或Eloquent用法无关紧要。Laravel Distinct Count

SELECT count(DISTINCT name) FROM tablename; 

这是我做过尝试,但不能得到正确的输出:

EloquentTableName::select(DB::raw('count(DISTINCT name) as name_count'))->get(); 

这将返回这样的事情,我想解决这个问题:

([{"name_count":"15"}]) 

我只是想要得到数字15.

+0

你能澄清当前的区别产出和预期产出? –

+0

@GoudaElalfy我只需要获取int值。我需要15.我得到的是“name_count”:“15” –

+0

如果你用' - > only(“name_count”)而不是' - > get()'来做什么? – apokryfos

回答

10

你可以简单地更换计数得到这样:

$count = DB::table('tablename')->count(DB::raw('DISTINCT name')); 

也可以这样做:

DB::table('tablename')->distinct('name')->count('name'); 
+0

很酷,谢谢。 –

-1

试试这个:

$result = TableName::groupBy('name')->count(); 

希望它可以帮助...

+0

谢谢,但这一个返回错误计数对我来说。 –

+0

首先使用'groupBy()',你只返回第一个“组”的计数。 – pascalvgemert