laravel 5.4 报错SQLSTATE[42000] Syntax error or access violation 1055 'xxx' isn't in GROUP BY

查询mysql 1055错误码发现问题为在mysql的配置中如果设置了sql_mode包含ONLY_FULL_GROUP_BY值得话,在进行查询时需要将select的字段都包含在group by 中。
即 select x,y from xxx group by x,y
否则就会报错

但是查看自己的配置my.cnf发现在sql_mode中并没有ONLY_FULL_GROUP_BY这个值

然后去查看Laravel的配置文件,config/database.php,查找mysql的配置,

 
    
  1. 'mysql' => [
  2. 'driver' => 'mysql',
  3. 'host' => env('DB_HOST', 'localhost'),
  4. 'port' => env('DB_PORT', '3306'),
  5. 'database' => env('DB_DATABASE', 'forge'),
  6. 'username' => env('DB_USERNAME', 'forge'),
  7. 'password' => env('DB_PASSWORD', ''),
  8. 'charset' => 'utf8',
  9. 'collation' => 'utf8_unicode_ci',
  10. 'prefix' => env('DB_PREFIX',''),
  11. 'strict' => true,
  12. 'engine' => null,
  13. ],

发现有个strict项,默认为true,上网也没有查找到相关解释,根据字面意思猜测可能为是否开启严格模式,将其修改为false,再次测试发现问题解决,可以输出正确结果

你可能感兴趣的:(php)