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();