【Laravel】GROUP_BYでSQLSTATE[42000]: Syntax error or access violation: 1055 Expression

【Laravel】GROUP_BYでSQLSTATE[42000]: Syntax error or access violation: 1055 Expression

2018年10月5日
Laravel

LaravelでgroupBy追加後、SQLSTATE[42000]: Syntax error or access violation: 1055 Expressionエラーが発生。対処法をまとめておきます。

実行環境

  • CentOS:7.5
  • mysql:5.7.23
  • Laravel:5.7.6

Syntax error or access violation: 1055 Expression発生

LaravelクエリビルダでGROUP_BY追加後、以下のエラーが発生。

こちらの記事を参考にして、my.cnfに以下の設定を追加。

MySQL 5.7.5+ でのGROUP BYエラー #MySQL - Qiita

メモ結論5.7.5で仕様変わったから、my.cnfを変更して、前の動作させるエラ…
qiita.com

/etc/my.cnf

 

MySQLを再起動。

うーん…。エラー変わらず。

 

Syntax error or access violation: 1055 Expressionを解消する方法

というわけでこちらを参考にdatabase.phpを修正。

Group by not working - Laravel - Stack Overflow

I'm not able to run this simple que…
stackoverflow.com

/config/database.php

以下の’strict’をtrueからfalseに修正します。

すると無事にエラーが解消されました。

ただstrictモードを無効にすることはあまり良くないよう。バージョン5.7以降のMySQLサーバを使用していることが原因みたいです。

このバージョンからは、GROUP BYSQL99に準拠するように動作するため、やはりMySQLサーバの設定を変更することが推奨されているみたい。