解决laravel出现Syntax error or access violation: 1055 '***' isn't in GROUP BY报错问题
Song •
4626 次浏览 •
1个评论 •
2018年02月10日
laravel 5.3以后默认开启mysql严格模式(strict),在mysql在严格模式下, 并且开启了ONLY_FULL_GROUP_BY的情况下,我们SELECT的字段没有出现在group by语句中会报错;如何解决呢?只要关闭了严格模式就不会报错。
如下Demo
public static function orders($phase)
{
return self::select(DB::raw("SUM(orders) as orders"),"type","users_id","name")
->groupBy("type","name")
->where("phase",$phase)
->get();
}
会出现如下错误,当然*号内的内容是不同的
Syntax error or access violation: 1055 '***' isn't in GROUP BY
解决办法
laravel出现上述错误是sql_mode设置导致的问题,修改config/database.php配置文件的strict => false即可关闭了严格模式:
'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' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
-
laravel5.*添加创建自定义全局函数(辅助函数) 2018-02-09 -
[ laravel-mongodb教程 ] laravel使用/升级/配置mongodb数据库 2018-02-07 -
[ laravel-mongodb教程 ] Laravel/Lumen安装配置Mongodb扩展 2018-02-07 -
[ laravel-mongodb教程 ] MongoDB在Win/Mac OSX/Ubuntu/Centos中的安装配置以及开启远程并且MongoDB安装PHP 扩展 2018-02-03 -
laravel5.* 字段递增/递减以及实现多字段递增/递减 2018-01-31

更多相关好文