Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel 5.4 Raw funktioniert nicht wie erwartet, funktioniert aber in mySQL

Laravel 5.3 und 5.4 verwenden standardmäßig den strikten Modus für mysql. Das bedeutet, dass ONLY_FULL_GROUP_BY Der SQL-Modus ist ebenfalls aktiviert. Aber wenn Ihre MySQL-Version mindestens 5.7.5 ist, können Sie nach einem Primärschlüssel einer Tabelle gruppieren und alle Spalten aus dieser Tabelle in der SELECT-Klausel verwenden, da sie funktional vom PK abhängig sind.

(MySQL-Behandlung von GROUP BY )

Ihre Optionen sind:

Aktualisieren Sie MySQL auf mindestens 5.7.5

Oder deaktivieren Sie den strikten Modus in der Laravels-DB-Konfiguration (config/database.php )

// ..
'connections' => [
    // ..
    'mysql' => [
        // ..
        'strict' => false,
        // ..
    ],
    // ..
]

Aktualisieren

Schlechte Nachrichten für Benutzer von MariaDB (und xampp):MariaDB scheint die "Erkennung funktionaler Abhängigkeiten" (noch) nicht zu unterstützen. Alles, was ich finden konnte, ist dieses Ticket .