SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column …
MySQL: 5.7.18
GROUP BY を用いたら、下記エラーが出た。
Google 先生に質問すると、一杯出てきた。。。
MySQL 5.7 から仕様変更になったのが原因だそうな。
sql_mode=only_full_group_by
この部分。
my.cnf のデフォルトで sql_mode に only_full_group_by が追加されたため
GROUP BY を用いたときは、一意である値しか SELECT できなくなったとのこと。
my.cnf の sql_mode から only_full_group_by を外してしまえば、5.6 までと同じように動作するとのこと。
- GROUP BY で指定したカラム
- 集約関数を利用しているカラム
- 全て同値であるカラム(?)
これらについては、SELECT できるので
それだけを指定する。
Qiita:脱!ゆるふわMySQL(2015-12-16)