sql >> Database >  >> RDS >> Mysql

Laravel 5.4 Raw werkt niet zoals verwacht, maar werkt in mySQL

Laravel 5.3 en 5.4 gebruiken standaard de strikte modus voor mysql. Dat betekent dat ONLY_FULL_GROUP_BY SQL-modus is ook ingeschakeld. Maar als uw MySQL-versie minimaal 5.7.5 is, kunt u groeperen op een primaire sleutel van een tabel en alle kolommen uit die tabel in de SELECT-component gebruiken omdat ze functioneel afhankelijk zijn van de PK.

(MySQL-verwerking van GROUP BY )

Uw opties zijn:

Upgrade MySQL naar minimaal 5.7.5

Of schakel de strikte modus uit in laravels db config (config/database.php )

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

Bijwerken

Slecht nieuws voor MariaDB (en xampp) gebruiker:MariaDB lijkt de "detectie van functionele afhankelijkheid" (nog) niet te ondersteunen. Het enige wat ik kon vinden is dit ticket .




  1. Waar MySQL-inloggegevens opslaan in PHP-scripts?

  2. n-percentielberekeningen in postgresql

  3. Rij samenvoegen met MAX rij in een andere tabel?

  4. Escape een tekenreeks in SQL Server zodat het veilig is om te gebruiken in LIKE-expressie