Je ne suis pas en mesure d'exécuter cette requête simple dans Laravel 5.3
$top_performers = DB::table('pom_votes')
->groupBy('performer_id')
->get();
Ça me donne:
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`)
Toutefois, si je copie la requête brute de l'erreur et déclenche directement dans PhpMyAdmin, cela fonctionne correctement.
J'ai déjà vérifié ceci:
https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset
Toute aide serait appréciée.
Merci,
Parth Vora
Editez le fichier de configuration de la base de données de vos applications config/database.php
Dans le tableau mysql
, définissez strict => false
pour désactiver le mode strict de MySQL
Peut-être que votre problème est dû au fait que vous utilisez un serveur MySQL avec la version 5.7.5+. À partir de cette version, la façon dont fonctionne GROUP BY
est modifiée, car elle se comporte de manière à être conforme à SQL99 (alors que ce n'était pas le cas dans les versions précédentes).
Essayez de faire un groupe complet ou de changer la configuration de votre serveur MySQL.
Lien vers la documentation officielle MySQL où le GROUP BY
complet est expliqué
Editez le fichier de configuration de la base de données de vos applications config/database.php
Dans le tableau mysql, définissez strict => false pour désactiver le mod strict de MySQL.
ou
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