GroupBy在Laravel 5.3和php7不工作


GroupBy in Laravel 5.3 and PHP 7 not working

Group by是有问题的,因为我切换到PHP 7和聚合值不适用于我想使用它的方式。

我有一个列表,有时列表中有重复。例如:

歌名A歌名B歌名A(重唱)歌名C

在结果中,歌曲标题A应该只出现一次。之前,我使用group by完成了此操作,其中确定歌曲标题的ID被分组。

我的表结构是:

id
group_id
song_title_id

Song_title_id涉及到:

id
song_title

在第一个表中,同一个song_title_id可以有多个实例。当返回结果时,我希望在结果中每个song_title_id只有一个实例。

以前,我会这样做:

DB::table('group_songs')
         ->groupBy('song_title_id')
         ->get();

自从更新到PHP 7,我得到一个错误:

Syntax error or access violation: 1055 '[table/column name]' isn't in GROUP BY

我做错了什么?

'mysql' => [
    'strict' => false,
],

By如何解析"isn't in GROUP By "mysql查询错误应该对每个非聚合字段进行分组,因此请尝试

DB::table('group_songs')
         ->groupBy('song_title_id')
         ->groupBy('group_id')
         ->groupBy('id')
          ->get();