首页 > 解决方案 > 如何在 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

由于OrangeGrapes计数 < 3,因此它们不会包含在输出中。

标签: phpmysqlsqllaravelgroup-by

解决方案


我不确定你到底想要什么,但我想你想使用 GROUP BY 和 HAVING

SELECT name, count(*)
FROM fruits
WHERE ...
GROUP BY name
HAVING count(*) > 3

此查询将计算同名记录的数量,但前提是计数大于 3-


推荐阅读