php - 如何在 Laravel 中获取大于 x 的记录数(使用 MySQL 查询)
问题描述
$lists = DB::table('searches')->orderBy('query', 'DESC')->paginate(15);
@foreach ($lists as list)
<div> {{$list->name}} </div>
@endforeach
我确实写了这个查询,它显示:
苹果 苹果 苹果 苹果 苹果 苹果 香蕉 香蕉 香蕉 葡萄 葡萄 橙 ....
我只想显示我使用的总出现次数大于 3 的水果名称(如果count>3):
DB::select('SELECT query, count(*) as count FROM searches GROUP BY query HAVING count > 3');
但在视图文件中我无法计算$lists->count()
错误: 调用数组上的成员函数 count()
我希望我的输出为:
Apple Banana ...
and $lists->count()
as 2
由于Orange和Grapes计数 < 3,因此它们不会包含在输出中。
解决方案
我不确定你到底想要什么,但我想你想使用 GROUP BY 和 HAVING
SELECT name, count(*)
FROM fruits
WHERE ...
GROUP BY name
HAVING count(*) > 3
此查询将计算同名记录的数量,但前提是计数大于 3-
推荐阅读
- r - A simple tidy up needed in regex
- c# - How can I force ListBoxItems to display inline in XAML
- kubernetes - How can I template an artifact reference in an upstream Spinnaker stage?
- javascript - Analog Ramda.pathOr in lodash library
- python - 使用 Keras 使用 ANN 预测正弦
- excel - Method 'Range' of object'_Worksheet' failed reason? 1
- r - 停用词的具体列表 quanteda
- gmail - 如何在gmail中开发附加组件?
- java - wait until angular 2+ has finished loading issue
- apache-kafka - 消费者意外失败/重新平衡