Heim > Backend-Entwicklung > PHP-Tutorial > Laravel WhereIn und GroupBy: Wie behebt man den „1055-Fehler'?

Laravel WhereIn und GroupBy: Wie behebt man den „1055-Fehler'?

Barbara Streisand
Freigeben: 2024-12-08 03:21:11
Original
840 Leute haben es durchsucht

Laravel WhereIn and GroupBy: How to Resolve the

Laravel: Den „1055-Fehler“ in WhereIn- und GroupBy-Abfragen verstehen

Problem:

In Laravel wird versucht Die Verwendung der WhereIn- und GroupBy-Klauseln in einer einzigen Abfrage führt zu folgendem Ergebnis Fehler:

SQLSTATE[42000]: Syntax error or access violation: 1055 'sbrtpt.loading.id' isn't in GROUP BY
Nach dem Login kopieren

Erklärung:

Standardmäßig erzwingt die Datenbankkonfiguration von Laravel den strikten SQL-Modus, der vorschreibt, dass jede Spalte, auf die in einer WHERE-Klausel verwiesen wird, auch in erscheinen muss die GROUP BY-Klausel, wenn die Abfrage eine GROUP BY-Operation enthält. In diesem speziellen Fall ist die ID-Spalte in der WhereIn-Klausel, aber nicht in der GroupBy-Klausel enthalten, was den Fehler verursacht.

Lösung:

Es gibt zwei mögliche Lösungen um dieses Problem zu beheben:

Option 1: Strikten Modus deaktivieren

Zum Deaktivieren Navigieren Sie im Strict-Modus zur Datei config/database.php und ändern Sie die MySQL-Array-Einstellungen wie folgt:

'mysql' => [
    ...
    'strict' => false,
    ...
]
Nach dem Login kopieren

Indem Sie Strict auf False setzen, deaktivieren Sie effektiv alle Regeln des Strict-Modus.

Option 2: Spezifische Modi angeben

Alternativ, wenn Sie den strikten Modus beibehalten und nur die spezifische Regel deaktivieren möchten das Problem verursacht, ändern Sie die Option „modes“ im Array „mysql“ in config/database.php. Um beispielsweise den Modus „NUR_FULL_GROUP_BY“ zu deaktivieren, fügen Sie die folgende Zeile hinzu:

'modes' => [
    // Disable this to allow grouping by one column
    'ONLY_FULL_GROUP_BY',
    // Other strict mode options
]
Nach dem Login kopieren

Zusätzliche Informationen:

Im Allgemeinen ist es ratsam, die zweite Option zu verwenden (Angabe spezifischer Modi), da Sie damit nur die erforderlichen strengen Modusregeln deaktivieren und gleichzeitig die Vorteile des strengen Modus beibehalten können. Indem Sie die Dokumentation für Ihr spezifisches Datenbankverwaltungssystem (z. B. MySQL) überprüfen, können Sie feststellen, welche zusätzlichen Modi zur Behandlung dieses Fehlers geeignet sein könnten.

Das obige ist der detaillierte Inhalt vonLaravel WhereIn und GroupBy: Wie behebt man den „1055-Fehler'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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