So beheben Sie den Laravel Eloquent Query-Fehler: Inkompatibel mit sql_mode=only_full_group_by?

Patricia Arquette
Freigeben: 2024-10-18 12:17:02
Original
547 Leute haben es durchsucht

How to Resolve Laravel Eloquent Query Error: Incompatible with sql_mode=only_full_group_by?

Laravel Eloquent-Abfragefehler: Inkompatibel mit sql_mode=only_full_group_by

In bestimmten Szenarien mit Laravel Eloquent-Abfragen kann eine Fehlermeldung angezeigt werden, die besagt:

<code class="text">SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1
of SELECT list is not in GROUP BY clause and contains nonaggregated
column 'myshop.products.id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by</code>
Nach dem Login kopieren

Dieser Fehler wird durch den strikten MySQL-Modus verursacht, der erfordert, dass alle Spalten in der SELECT-Liste entweder gruppiert oder aggregiert werden.

Lösung: Deaktivieren Sie den strikten MySQL-Modus

Die einfachste und effektivste Lösung für dieses Problem besteht darin, den strengen MySQL-Modus in Ihren Datenbankverbindungseinstellungen zu deaktivieren. Dies kann erreicht werden, indem Sie die folgende Konfiguration zu Ihrer Datenbank.php-Datei hinzufügen:

<code class="php">'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]</code>
Nach dem Login kopieren

Wenn Sie „strict“ auf „false“ setzen, können Ihre Abfragen ohne die durch sql_mode=only_full_group_by auferlegte Einschränkung ausgeführt werden.

Erweiterte Konfiguration

Eine genauere Kontrolle über das Verhalten im strengen MySQL-Modus finden Sie im Blogbeitrag von Matt Stauffer zu diesem Thema:

<code class="text">https://mattstauffer.com/blog/mysql-config-for-laravel-developers</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Laravel Eloquent Query-Fehler: Inkompatibel mit sql_mode=only_full_group_by?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage