2016-03-08 373 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