In Laravel Eloquent können beim Ausführen von Abfragen, die eine Gruppierung beinhalten, Fehler wie die folgenden auftreten:
SQLSTATE[42000]: Expression #1 of SELECT list is not in GROUP BY clause ... incompatible with sql_mode=only_full_group_by
Dieser Fehler tritt normalerweise auf, wenn eine in der Abfrage verwendete Spalte nicht in der GROUP BY-Klausel enthalten ist.
Lösung:
Um dieses Problem zu beheben, eine Der empfohlene Ansatz besteht darin, den strikten MySQL-Modus in den Datenbankverbindungseinstellungen zu deaktivieren. Dies kann erreicht werden, indem Sie die folgenden Zeilen zu Ihrer Datenbankkonfigurationsdatei hinzufügen (z. B. config/database.php):
<code class="php">'connections' => [ 'mysql' => [ // MySQL 5.6 behavior 'strict' => false, // MySQL 5.7 behavior 'strict' => true ] ],</code>
Darüber hinaus können Sie andere Konfigurationseinstellungen im Blogbeitrag von Matt Stauffer durchsuchen, um die zu finden optimale Einstellungen für Ihre spezifische Datenbankumgebung. Durch Deaktivieren des strikten MySQL-Modus ermöglichen Sie die Verwendung nicht aggregierter Spalten in der GROUP BY-Klausel und beheben so den Fehler.
Das obige ist der detaillierte Inhalt vonWie behebe ich SQL-Fehler aufgrund eines inkompatiblen SQL_MODE in Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!