web-dev-qa-db-ja.com

動作しないことによるグループ化-Laravel

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されます。

おかげで、

パルス・ボラ

23
Parth Vora

アプリケーションのデータベース構成ファイルを編集しますconfig/database.php

mysql配列で、strict => falseを設定してMySQLの厳格モードを無効にします

80
Md.Jewel Mia

たぶんあなたの問題は、MySQLサーバーvithバージョン5.7.5+を使用しているという事実によるものです。途中でこのバージョンからGROUP BYワークスは、SQL99に準拠するために動作するように変更されたため変更されました(以前のバージョンではサポートされていませんでした)。

MySQLサーバーのグループ全体を実行するか、MySQLサーバーの構成を変更してください。

リンク 完全なGROUP BYは説明されている

18
Gabriele Ciech

アプリケーションのデータベース構成ファイル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

0
Suraj Vaghela