【问题标题】:Is it possible to select only repeated values from a single column using eloquent?是否可以使用 eloquent 从单个列中仅选择重复值?
【发布时间】:2015-06-02 09:28:30
【问题描述】:

表格

id|p.id|product

1 |8   |chair
2 |8   |table
3 |2   |chair
4 |4   |guitar
5 |8   |glasses

我想选择 p.id 8 和 p.id 2 产品,但是我想要重复的值(椅子)。这与不同的相反。到目前为止我有

$product =modelname::whereIn('p.id', array(8,2))->select('product')->get();

这显然选择了 2 个 p.id,但是我不知道在使用 eloquent 时如何使用计数等聚合函数。任何帮助深表感谢。 (我使用 laravel 4.2 顺便说一句)

【问题讨论】:

  • 以上数据你想得到的确切结果是什么?
  • 确切的结果是椅子。我只想要产品而不是不同的值(仅限重复值)。

标签: php sql laravel laravel-4 eloquent


【解决方案1】:

如果您将 p.id 重命名为 p_id,使用:

$product= modelname::selectRaw('product, count(product) AS aggregate')->whereIn('p_id', array(8,2))->groupBy('product')->having('aggregate','>',1)->get();

你会得到这样的结果:

array:1 [▼
  0 => {#121 ▼
    +"product": "chair"
    +"aggregate": 2
  }
]

【讨论】:

    【解决方案2】:

    如果您想选择 p.id 8 和 p.id 2 的值,您可以使用类似的代码

    $product = Modelname::whereIn('p.id', array(8,2))->get();
    

    现在$product 变量以数组格式联系值。现在您可以将变量传递给查看,或者如果您想要计数,请使用count($product)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-21
      • 2015-02-10
      • 2021-12-24
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多