Laravel 5.3でこの単純なクエリを実行することはできません
$top_performers = DB::table('pom_votes')
->groupBy('performer_id')
->get();
それは私に与えます:
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`)
ただし、生のクエリをエラーからコピーしてPhpMyAdminで直接起動すると、正常に機能します。
私はすでにこれをチェックしました:
https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset
任意のヘルプがappricaitedされます。
おかげで、
パルス・ボラ
アプリケーションのデータベース構成ファイルを編集しますconfig/database.php
mysql
配列で、strict => false
を設定してMySQLの厳格モードを無効にします
たぶんあなたの問題は、MySQLサーバーvithバージョン5.7.5+を使用しているという事実によるものです。途中でこのバージョンからGROUP BY
ワークスは、SQL99に準拠するために動作するように変更されたため変更されました(以前のバージョンではサポートされていませんでした)。
MySQLサーバーのグループ全体を実行するか、MySQLサーバーの構成を変更してください。
リンク 完全なGROUP BY
は説明されている
アプリケーションのデータベース構成ファイルconfig/database.phpを編集します
Mysql配列で、strict => falseを設定してMySQLのstrict modを無効にします
または
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