我有一张这样的桌子:
我想从中得到不同的行。我使用:
DB::table('dmspro_mys_campaign_product')->distinct()->get();
但是它仍然给出3行结果。我希望有2行。
我该如何解决?
答案 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');