Vypnutí SQL módu ONLY_FULL_GROUP_BY

Na novějších MySQL serverech 5.7 a 8.0 je nastaven SQL mód:
ONLY_FULL_GROUP_BY
STRICT_TRANS_TABLES
NO_ZERO_IN_DATE
NO_ZERO_DATE
ERROR_FOR_DIVISION_BY_ZERO
NO_ENGINE_SUBSTITUTION

V těchto verzích MySQL jde o standardní nastavení, které je sdílené pro celý server a nelze jej měnit pro jednotlivé zákazníky.
 
Pokud potřebujete uvedený mód u vašeho webu změnit, je zapotřebí toto nastavovat vždy na začátku spojení do databáze (stejně jako se nastavuje např. znaková sada pro komunikaci s db).
 
Chování serveru nastavíte pomocí SQL dotazu SET a příkazu mysqli_query(). Tento příkaz vložte nejlépe do skriptu, kde se aplikace připojuje do databáze - v příkladu se připojení provádí PHP příkazem mysqli_connect() a vypíná se ONLY_FULL_GROUP_BY:
 
$spojeni = mysqli_connect( "server", "login", "heslo", "databaze" );
mysqli_query($spojeni, "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))" );