this is incompatible with sql_mode=only_full_group_by
Se si prova a mandare in esecuzione una query come questa sotto:
SELECT IdSoggetto, sum(carico) as carico, sum(scarico) as scarico, FROM tabella where (uCase(id) like ‘%xxx%’ or uCase(Soggetto) like ‘%xxx%’ or uCase(IdSoggetto)like ‘%xxx%’) and IdSoggetto=’2′ group by Soggetto, data, Operatore order by Soggetto,Data
e si sta usando un database MySql di versione 5.7 o superiore verra restituito un errore di tipo:
this is incompatible with sql_mode=only_full_group_by
Laddove si avesse la possibilità di amministrare il database basterebbe settare le variabili globali del DB in questo modo:
#Disable the ONLY_FULL_GROUP_BY option from SQL it will work mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));
Ma se come invece è successo a me, si sta utilizzando un databse mysql posto su aruba, per il quale non si hanno i diritti di amministratore, allora occorre fare diversamente:
OCCORRE INSERIRE OGNI NOME CAMPO NON COMPRESO NELLA CLAUSOLA group by, nella funzione ANY_VALUE quindi la quesry di prima diventa:
SELECT ANY_VALUE(IdSoggetto), sum(carico) as carico, sum(scarico) as scarico, FROM tabella where (uCase(id) like ‘%xxx%’ or uCase(Soggetto) like ‘%xxx%’ or uCase(IdSoggetto)like ‘%xxx%’) and IdSoggetto=’2′ group by Soggetto, data, Operatore order by Soggetto,Data
in questo modo verrà eseguita senza sollevare errori.
N.B. questa funzione (ANY_VALUE) non è presente su versioni mysql precedenti
