Php 语法错误:列不在GROUP BY(SQL、Laravel)中

Php 语法错误:列不在GROUP BY(SQL、Laravel)中,php,sql,laravel-5,Php,Sql,Laravel 5,尝试运行以下查询时,Laravel 5.4中出现错误: return ReferLinkVisit::where('refer_link_id', $this->id) ->groupBy('ipaddr') ->get() 错误: SQLSTATE[42000]:语法错误或访问冲突:1055'数据库。引用链接访问。id'不在SQL分组中:从“引用链接访问”中选择*其中“引用链接访问id”=1个“ipaddr”分组视图:/resourc

尝试运行以下查询时,Laravel 5.4中出现错误:

    return ReferLinkVisit::where('refer_link_id', $this->id)
        ->groupBy('ipaddr')
        ->get()
错误:

SQLSTATE[42000]:语法错误或访问冲突:1055'数据库。引用链接访问。id'不在SQL分组中:从“引用链接访问”中选择*其中“引用链接访问id”=1个“ipaddr”分组视图:/resources/views/dashboard/refere/home.blade.php

然而,我可以在phpmyadmin中运行该命令,它将很好地工作。我不明白,因为我已经写过一百次类似的查询了,但不管出于什么原因,这次它就是不想工作。我不知道我做错了什么

表结构:


您需要禁用MySQL严格模式。 打开config/database.php,然后在connections数组中查找mysql数组。 将strict mode的值更改为false

'connections' => [
     ...
     'mysql' => [
         ...
         'strict' => false, // ensure strict mode is set to false
         ...
      ],
     ...
]

我希望这能解决您的问题。

这是一个不正确的分组方式-所有选定的字段都应该在组中命名,或者对COUNT之类的函数进行分组。您想在这里实现什么?您必须指定分组中的各个列。将所有非聚合列放入GROUPBY语句中。