laravel 5.4 报错SQLSTATE[42000] Syntax error or access violation 1055 'xxx' isn't in GROUP BY
2017-08-12 19:35
1121 查看
查询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的配置,
发现有个strict项,默认为true,上网也没有查找到相关解释,根据字面意思猜测可能为是否开启严格模式,将其修改为false,再次测试发现问题解决,可以输出正确结果
即 select x,y from xxx group by x,y
否则就会报错
但是查看自己的配置my.cnf发现在sql_mode中并没有ONLY_FULL_GROUP_BY这个值
然后去查看Laravel的配置文件,config/database.php,查找mysql的配置,
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' ba1f => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => env('DB_PREFIX',''),
'strict' => true,
'engine' => null,
],
发现有个strict项,默认为true,上网也没有查找到相关解释,根据字面意思猜测可能为是否开启严格模式,将其修改为false,再次测试发现问题解决,可以输出正确结果
相关文章推荐
- SQLSTATE[42000]: Syntax error or access violation: 1055 'kf_local.g.group_name' isn't in GROUP BY
- 16.Laravel报错SQLSTATE[42000] Syntax error or access violation 1055 'xxx' isn't in GROUP BY.txt
- Laravel5.5问题:SQLSTATE[42000] Syntax error or access violation 1071 Specified key was too long; max k
- laravel运行带有group by的sql时提示 “SQLSTATE[42000]: Syntax error or access violation: 1055 错误解决
- 安装Magento报错:SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'perio
- MySQL SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB' 错误的原因及解决
- ERROR 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY..sql_mode=only_full_group_by
- Laravel:php artisan migrate报错SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default
- Laravel : Syntax error or access violation: 1055 Error
- 在laravel中执行数据库迁移报在执行数据库迁移时提示:php artisan migrate SQLSTATE[42000]: Syntax error or access violation
- ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate
- laravel5.5 Syntax error or access violation: 1071 Specified key was too long
- laravel-admin1.5安装报错Syntax error or access violation: 1071 Specified key was too long; max key lengt
- JBPM工作流之出现Could not synchronize database state with session以及You have an error in your SQL syntax;的异
- Translating SQLException with SQL state '42000', error code '1064', message [You have an error in yo
- SQL Error: 1064, SQLState: 42000 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
- ERROR 1064 (42000): You have an error in your SQL syntax