计算Laravel中的重复列

时间:2017-03-21 06:20:46

标签: php mysql laravel eloquent

如何使用雄辩的模型查询来计算数据库表中的DUPLICATE列?

例如,在SQL中,有这个命令:

$noOfjobsFromSameCustomers = App\Workflow::count();

上面的代码将返回具有相似电子邮件地址的所有列中的名称。

我想要达到的目的是获得重复条目的COUNT,即

$noOfjobsFromSameCustomers = App\Workflow::notDistinct()->orderBy('cust_id')->count();

但是我需要一个额外的参数来指定cust_id(工作流表中的一列)是重复的,例如:

 ID  NAME EMAIL 
 1   John asd@asd.com 
 2   Sam  asd@asd.com 
 3   Tom  asd@asd.com 
 4   Bob  bob@asd.com 
 5   Tom  asd@asd.com 

例如,如下表所示:

{{1}}

如何计算指定电子邮件地址(例如asd@asd.com)的重复次数?

2 个答案:

答案 0 :(得分:2)

你可以通过原始查询获得这个

$result = DB::select( DB::raw(" select * from (
  SELECT name, COUNT(email) as e_count
  FROM users
  GROUP BY email 
  )a where  a.e_count > 1 ");

并将您的where条件放在此查询中 请参阅更多Larave website

答案 1 :(得分:2)

您可以使用 havingRow

->havingRaw('COUNT(<columneName>) > 1')