我想根據用戶名和數據庫中有多少行來區分用戶。
我的數據集看起來像這樣(簡化):Laravel雄辯的數據排名
A .... John
A .... John
B .... Mike
A .... John
B .... Mike
C .... Denis
我想前三唯一的名稱,由左邊的值出現了多少次排序。
我可以用Laravel雄辯的ORM來做到嗎?
一個結果將被:
John
Mike
Denis
感謝
我想根據用戶名和數據庫中有多少行來區分用戶。
我的數據集看起來像這樣(簡化):Laravel雄辯的數據排名
A .... John
A .... John
B .... Mike
A .... John
B .... Mike
C .... Denis
我想前三唯一的名稱,由左邊的值出現了多少次排序。
我可以用Laravel雄辯的ORM來做到嗎?
一個結果將被:
John
Mike
Denis
感謝
這就是你如何用Laravel的雄辯ORM
Model::select('name')
->groupBy('name')
->orderBy(DB::raw('count(name)'), 'desc')
->take(3)
->get();
如果使用Laravel 3然後用蛇情況:
Model::select('name')->group_by('name')->order_by(DB::raw('count(name)'), 'desc')->take(3)->get();
如果你願意,你可以只使用查詢生成器(流利)通過使用DB::table('tableName')->
代替Model::
。
注意:
DB::raw()
指示Laravel不要把 backtics那裏。take()
限制行。不是laravel解決方案,但它可能工作(純SQL,特別是MySQL的):
select name
from yourTable
where ... # Your filter conditions go here
group by name
order by count(id) desc
limit 3;
希望這有助於
您是否想特別爲laravel解決方案?或者「純SQL」解決方案可以爲你工作? – Barranka
那麼,兩者都會.. ..我只是好奇關於雄辯 – intelis