Maison >base de données >tutoriel mysql >Pourquoi « GROUP BY » de MySQL autorise-t-il les colonnes non agrégées dans la clause SELECT ?
GROUP BY
de MySQL : un examen plus approfondi de son comportement uniqueLa gestion par MySQL de la clause GROUP BY
diffère de celle d'autres systèmes de bases de données comme Oracle et SQL Server. Vous avez peut-être remarqué que MySQL permet de sélectionner des colonnes non agrégées dans la clause SELECT
, même si ces colonnes ne sont pas incluses dans la clause GROUP BY
. Cela s'écarte du comportement SQL standard.
Pourquoi cette exception dans MySQL ?
La documentation de MySQL (version 5.0 et ultérieures) explique ce choix de conception comme un compromis entre optimisation des performances et convivialité. Les principaux avantages sont :
SELECT
évite les étapes de tri et d'agrégation supplémentaires, ce qui entraîne une exécution plus rapide des requêtes.Cette flexibilité, bien que pratique, est cruciale à comprendre. Il est important de noter que la valeur spécifique choisie pour les colonnes non agrégées est arbitraire : il n'est pas garanti qu'elle provienne d'une ligne particulière du groupe. Par conséquent, l’utilisation de cette approche nécessite un examen attentif des données et des résultats souhaités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!