1055: Expression not in GROUP BY (only_full_group_by) (expressão que não está no GROUP BY)
MySQLO que significa?
Uma coluna que não está no GROUP BY nem envolvida por uma função de agregação foi usada na lista do SELECT ou em HAVING/ORDER BY. Como o modo SQL ONLY_FULL_GROUP_BY está habilitado, o MySQL rejeita essa expressão não determinística.
Por que acontece?
A consulta seleciona diretamente uma coluna além das colunas agrupadas, mas essa coluna pode não ter um único valor por grupo. ONLY_FULL_GROUP_BY vem habilitado por padrão no MySQL 5.7+; consultas que dependem do antigo comportamento permissivo do GROUP BY geram este erro.
Como resolver
Adicione a coluna à lista do GROUP BY ou envolva-a em uma função de agregação (MAX(), MIN(), ANY_VALUE()). Se você sabe que o valor é realmente único dentro do grupo, ANY_VALUE() suprime a ambiguidade de forma deliberada. Desabilitar o modo (remover ONLY_FULL_GROUP_BY do sql_mode) em vez de corrigir a consulta traz de volta o risco de resultados errados; evite isso.
Mais entradas deste banco
- 1553Cannot drop index needed in a foreign key constraint (não é possível remover um índice exigido por uma constraint de foreign key)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (o carregamento de dados locais está desabilitado; deve ser habilitado no cliente e no servidor)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (definição de tabela incorreta; só pode haver uma coluna automática e ela deve ser definida como chave)
- 1267Illegal mix of collations
- 1030Got error N from storage engine
- 1197Multi-statement transaction required more than 'max_binlog_cache_size' (a transação com vários comandos exigiu mais que 'max_binlog_cache_size')
- 1785Statement violates GTID consistency