【问题标题】:Get count of duplicates in a specific field in Laravel获取 Laravel 特定字段中的重复项数
【发布时间】:2018-05-18 16:35:29
【问题描述】:

我有一个相对较短的列表,但我希望它能够像这样运行:

目前,通过在我的控制器中使用以下内容,我得到了一个 originRemitStatus 为 null 的清单列表(即该特定记录从未被汇出):

$unsentManifests = Carrier_Manifest::whereNull('originRemitStatus')->get();

我将它们拉到一个简单的列表中,您可以立即看到一些记录的重复。现在虽然这确实让我感到困扰,但它不是目前的重点。

我希望能够做的是获取具有相同 manifestNumber 的重复记录的计数,但这个时基计算有多少字段 originRemitStatus 设置为 1,基于$unsentManifests的原组。

//相同的数据和预期的结果//

从获取:

manifestNumber: 1234
originRemitStatus: null

manifestNumber: 1234
originRemitStatus: null

manifestNumber: 1234
originRemitStatus: 1

manifestNumber 9876
originRemit Status: null

manifestNumber 9876
originRemit Status: null

manifestNumber 4567
originRemit Status: null

manifestNumber 4567
originRemit Status: 1

返回结果:

  • 1234 (1)
  • 9876 (0)
  • 4567 (1)

【问题讨论】:

  • 你能添加一些示例数据和预期的结果吗?
  • @JonasStaudenmeir - 我相信我已经包含了我试图想象的内容,但并不完全确定。如果您需要进一步说明,请告诉我,我会在上面输入更多信息。再次感谢 - 马特

标签: php laravel laravel-5 eloquent


【解决方案1】:

试试这个:

Carrier_Manifest::select('manifestNumber')
    ->selectRaw('SUM(IF(originRemitStatus = 1, 1, 0)) count')
    ->groupBy('manifestNumber');
    ->get();

【讨论】:

  • 您能否就答案提供反馈?
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2016-01-27
  • 2021-04-05
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多