Heim  >  Artikel  >  Datenbank  >  Wie behebe ich den Fehler „Inkompatibel mit sql_mode=only_full_group_by' in Laravel Eloquent?

Wie behebe ich den Fehler „Inkompatibel mit sql_mode=only_full_group_by' in Laravel Eloquent?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-23 12:10:19292Durchsuche

How to Fix the

Inkompatibler Fehler mit sql_mode=only_full_group_by in Laravel Eloquent beheben

Bei Laravel Eloquent-Abfragen kann der Fehler „Inkompatibel mit sql_mode=only_full_group_by“ auftreten, wenn die Die Abfrage schließt nicht aggregierte Spalten in die SELECT-Liste ein, die nicht funktional abhängig sind auf die Spalten in der GROUP BY-Klausel. Um dieses Problem zu beheben, kann der strikte MySQL-Modus in den Datenbankverbindungseinstellungen deaktiviert werden.

Im bereitgestellten Beispielcode wird die Abfrage nach „store_id“ gruppiert und nach „update_at“ sortiert, aber die ID-Spalte ist auch in enthalten SELECT-Liste. Da die ID funktional nicht von der Store-ID abhängig ist, kann sie nicht ohne Aggregation in die SELECT-Liste aufgenommen werden.

Um den Fehler zu beheben, deaktivieren Sie den strengen MySQL-Modus, indem Sie die folgende Konfiguration zu Ihren Datenbankverbindungseinstellungen in der Konfiguration/Datenbank hinzufügen .php-Datei:

'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]

Durch die Deaktivierung des strikten Modus können nicht aggregierte Spalten in die SELECT-Liste aufgenommen werden, auch wenn sie funktional nicht von den Spalten in abhängig sind die GROUP BY-Klausel.

Zusätzliche Konfigurationseinstellungen

Weitere Konfigurationsoptionen im Zusammenhang mit dem strikten Modus finden Sie im Blogbeitrag von Matt Stauffer:

  • https://mattsauer.com/blog/laravel-5-3-group-by-hack-with-mysql-strict-mode

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Inkompatibel mit sql_mode=only_full_group_by' in Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn