Group by not working - Laravel
I'm not able to run this simple query in Laravel 5.3
$top_performers = DB::table('pom_votes')
->groupBy('performer_id')
->get();
It gives me:
SQLSTATE[42000]: Syntax error or access violation: 1055 'assessment_system.pom_votes.id' isn't in GROUP BY (SQL: select * from `pom_votes` group by `performer_id`)
However, if I copy the raw query from the error and fire directly in PhpMyAdmin, it works fine.
I have already checked this:
https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset
Any help would be appreciated.
Thanks,
Parth Vora
Edit your applications' database config file config/database.php
In mysql
array, set strict => false
to disable MySQL's strict mode
Go to config/database.php
Update strict value false.
return [
'connections' => [
'mysql' => [
'strict' => false
]
]
]
Edit your applications's database config file config/database.php
In mysql array, set strict => false to disable MySQL's strict mod
or
sudo nano /etc/mysql/mysql.cnf
[mysqld] sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
If you false strict mode then you can't use other strict functionality to fix this error Go to the Illuminate\Database\Connectors\MySqlConnector.php and change function like below:
protected function strictMode() {
return "set session
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY
_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'";
}
0 Comments
CAN FEEDBACK
Emoji