MySQL 3.23/4.0/4.1 e 5.1 afirma:
Se você usar
GROUP BY
[ forselect
] , as linhas de saída serão classificadas de acordo com asGROUP BY
colunas, como se você tivesse umORDER BY
para as mesmas colunas. ➫➫➫
No entanto, o MySQL 5.5 afirma:
Confiar na classificação implícita
GROUP BY
no MySQL 5.5 está obsoleto . Para obter uma ordem de classificação específica de resultados agrupados, é preferível usar umaORDER BY
cláusula explícita. ➫➫➫
(A informação acima também é declarada em 5.6 e 5.7 .)
O que exatamente significa "obsoleto" no MySQL?
O comportamento implícito group by
ainda é garantido para funcionar no MySQL 5.5, 5.6 e 5.7 (a versão atual mais recente), assim como em todas as versões anteriores?
ORDER BY NULL
Ainda é necessário impedir que o MySQL faça uma classificação desnecessária?
Editar (por Rick James)
Isso cobre problemas de banco de dados:
- A ordenação de um
GROUP BY
semORDER BY
- O significado e a utilidade de
ORDER BY NULL
- A sabedoria de usar um 'recurso' 'obsoleto'
- O significado de "obsoleto" no manual do MySQL (não apenas para este caso)