Bellow 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
groupowner_name
订购id
asc)
问题是我有很多重复的记录,其中一些列略有不同。我需要通过owner_name获取它们并且只有一次。
答案 0 :(得分:2)
编辑应用程序的数据库配置文件isManaged()
在mysql数组中,设置config/database.php
以禁用MySQL的严格模式
答案 1 :(得分:0)
您无需执行'select(*)',默认情况下会选择所有列数据。
试试这个:
Product::orderBy('id','asc')->groupBy('owner_name')
->get();
如果您想要获取所选列,您可以这样做:
Product::select(['column_1', 'column_2'])
->orderBy('id','asc')->groupBy('owner_name')
->get();