Wie behebt man den Fehler „Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel' in Laravel Eloquent aufgrund des strengen MySQL-Modus?

Linda Hamilton
Freigeben: 2024-10-18 12:29:03
Original
551 Leute haben es durchsucht

How to Fix

Inkompatibilität mit sql_mode=only_full_group_by in Laravel Eloquent

Es tritt der Fehler „Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel“ auf. .“ beim Ausführen einer Eloquent-Abfrage mit Gruppierung deutet auf eine Inkompatibilität mit MySQLs sql_mode=only_full_group_by hin. Um dieses Problem zu beheben:

Deaktivieren Sie den strengen MySQL-Modus

Eine Lösung besteht darin, die Einstellung für den strengen MySQL-Modus in Ihrer Datenbankverbindungskonfiguration zu deaktivieren. Fügen Sie in der .env-Datei von Laravel die folgende Zeile hinzu:

DB_STRICT_MODE=false
Nach dem Login kopieren

Alternativ können Sie den strikten Modus in Ihrer config/database.php-Datei konfigurieren:

<code class="php">'mysql' => [
    // Disable strict mode
    'strict' => false,
],</code>
Nach dem Login kopieren

Erläuterung

In MySQL 5.7 und höher erfordert der sql_mode=only_full_group_by-Modus, dass alle Spalten in der SELECT-Liste entweder in der GROUP BY-Klausel enthalten sind oder aggregierte Funktionen sind. In der bereitgestellten Abfrage:

<code class="php">$products = Product::where('status', 1)
            ->where('stock', '>', 0)
            ->where('category_id', '=', $category_id)
            ->groupBy('store_id')
            ->orderBy('updated_at', 'desc')
            ->take(4)
            ->get();</code>
Nach dem Login kopieren

Die Spalten-ID (Primärschlüssel) erscheint in der SELECT-Liste, ist aber nicht in der GROUP BY-Klausel enthalten. Durch Deaktivieren des strikten Modus lässt MySQL nicht aggregierte Spalten in der SELECT-Liste zu, die funktional nicht von den GROUP BY-Spalten abhängig sind.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel' in Laravel Eloquent aufgrund des strengen MySQL-Modus?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!