选择所有列,但与laravel中的数据库表不同

djmepvbi  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(297)

下面的sql命令运行良好:

select * from `product` group by `owner_name` order by `id` asc

当我在laravel项目中翻译上述代码以获得相同的结果时:

Product::select('*')
        ->orderBy('id','asc')->groupBy('owner_name')
         ->get();

这个laravel代码返回错误
sqlstate[42000]:语法错误或访问冲突:1055“db1.product.id”不在group by中(sql:select*from) product 分组依据 owner_name 订货人 id asc公司)
问题是我有许多重复的记录,其中有些列略有不同。我只需要一次就可以拿到。

bq9c1y66

bq9c1y661#

您不需要执行“select(*)”,默认情况下它将选择所有列数据。
试试这个:

Product::orderBy('id','asc')->groupBy('owner_name')
     ->get();

如果要获取选定列,可以执行以下操作:

Product::select(['column_1', 'column_2'])
    ->orderBy('id','asc')->groupBy('owner_name')
     ->get();
vlurs2pr

vlurs2pr2#

编辑应用程序的数据库配置文件 config/database.php 在mysql数组中,设置 strict => false 禁用mysql的严格模式

相关问题