Az ONLY_FULL_GROUP_BY SQL mód letiltása

Az újabb MySQL 5.7 és 8.0 szervereken az ONLY_FULL_GROUP_BY, NO_ZERO_DATE, NO_ZERO_IN_DATE SQL mód van beállítva. A MySQL ezen verzióiban ez egy szabványos beállítás, amely minden adatbázisra érvényes a szerveren és nem módosítható az egyes ügyfelek számára.

Ha módosítani kell a webhelyén megadott módot, akkor ezt mindig az adatbázishoz való kapcsolódás elején kell beállítani (ugyanúgy, mint az adatbázissal történő kommunikáció karakterkészletének beállítását).

A kiszolgáló viselkedésének beállításához használja a SET SQL lekérdezést és a mysqli_query () parancsot. A legjobb, ha beszúrja ezt a parancsot abba a szkriptbe, ahol az alkalmazás csatlakozik az adatbázishoz - a példában a kapcsolat a mysqli_connect () php paranccsal történik, és az ONLY_FULL_GROUP_BY ki van kapcsolva:

$connection = mysqli_connect( "server", "login", "password", "database" );
mysqli_query($connection, "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))" );