在查询生成器中查询不同行

时间:2019-10-03 07:39:07

标签: mysql laravel

我有一张这样的桌子:

enter image description here

我想从中得到不同的行。我使用:

DB::table('dmspro_mys_campaign_product')->distinct()->get();

但是它仍然给出3行结果。我希望有2行。

我该如何解决?

4 个答案:

答案 0 :(得分:1)

只需将字段名传递给非重复函数即可。像这样(如果您想根据“ compeign_code”列进行区分)

DB::table('dmspro_mys_campaign_product')->distinct('compeign_code')->get();

如果要基于多个列值来区分字段,则可以使用select方法。

答案 1 :(得分:1)

我认为答案是正确的。区域行为您提供结果,其中每一行都是唯一的。由于所有三行之间都存在细微的差异,因此您将得到全部三行,因为没有一行与另一行完全相等。

希望我能帮上忙, 塞巴斯蒂安

答案 2 :(得分:1)

您需要与dmspro_mys_campaign_product表中的值不同,以便数据库查询需要传递列名。

DB::table('dmspro_mys_campaign_product')->distinct('product_id')->get();

答案 3 :(得分:1)

您只需要在distinct('compeign_code')中提及列名即可。

 DB::table('dmspro_mys_campaign_product')->distinct('compeign_code')->get();

或者您可以尝试

 DB::table('dmspro_mys_campaign_product')->groupby('product_id')->distinct()->get();

如果只想获得一列,则可以使用它。

DB::table('dmspro_mys_campaign_product')->distinct()->select('product_id');