首页 > 解决方案 > 如果在 Laravel Query 中计数超过 3,如何选择项目

问题描述

Query的表列中有许多相同的值,searchkeywords
如果计数> 3,我想选择它,并且我想调用 searchkeywords 其他数据。

例如Apple,Apple,Apple,Banana,Banana,Grapes,Grapes,Grapes,Grapes,Orange...

因此,选择并仅显示Apple它们Grapes的 ID 和其他列数据超过 3。
我正在使用这个查询

控制器代码

$topsearches = DB::table('searchkeywords')
->selectRaw('query,count(*) as count')
->havingRaw('count(*) > 3')
->orderBy('created', 'DESC')
->paginate(15);

查看代码:

@foreach($topsearches as $search)
 {{$search->query}}
@endforeach

所以,我只能调用查询列,除此之外,当我调用 using 时idcreated列也在那里{{$search->id}},它会抛出错误:

未定义的属性:stdClass::$id

标签: phpmysqllaravel

解决方案


您需要的列应该是 selectRaw,如:

  $topsearches = DB::table('searchkeywords')
    ->selectRaw('query,id,created,count(*) as count')
    ->havingRaw('count(*) > 3')
    ->orderBy('created', 'DESC')
    ->groupBy('query')
    ->paginate(15);

推荐阅读