4 MINDS

4MINDS Gestão de Conhecimento

Mysql - resolver erro: "not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"


Esse erro acontece a partir de certa versão do Mysql, onde se torna obrigatório usar os mesmos campos de select no group by da consulta.

Exception original:

Mensagem: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'gym.p.valor' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Uma solução é alterar a sql pra se ajustar a isso.
Outra é alterar sql_mode no console do mysql, com esses 2 comandos:

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';