Maison > base de données > tutoriel mysql > Comment agréger des colonnes non groupées dans MySQL 5.6 ?

Comment agréger des colonnes non groupées dans MySQL 5.6 ?

Susan Sarandon
Libérer: 2024-11-29 04:35:13
original
370 Les gens l'ont consulté

How to Aggregate Non-Grouped Columns in MySQL 5.6?

Agrégation sans groupes : solutions pour MySQL 5.6

Dans MySQL 5.6, la fonction ANY_VALUE(), qui permet d'agréger des colonnes non groupées , n'est pas disponible. Cela pose un défi lors de la migration des requêtes de MySQL 5.7 vers 5.6.

Modification du mode MySQL

Une solution consiste à modifier le mode SQL pour l'environnement de production. En définissant le mode ONLY_FULL_GROUP_BY sur vide, cela désactivera temporairement la restriction sur l'agrégation des colonnes non groupées.

SET SESSION sql_mode = '';
/* Your query here */
SET SESSION sql_mode = @mode;
Copier après la connexion

Méthodes d'agrégation alternatives

Cependant, il est important à noter que la requête en question n'est peut-être pas idéale. Il renvoie une ligne aléatoire du tableau « images » pour chaque pays.

Une approche plus fiable consiste à sélectionner une ligne d'image spécifique en fonction d'un critère, tel que la colonne « id ».

SELECT c.id, c.name, i.*
FROM countries c
LEFT JOIN (
  SELECT MIN(id) id, country_id
  FROM images
  GROUP BY country_id
) first ON c.id = first.country_id
LEFT JOIN images i ON first.id = i.id
Copier après la connexion

Cette requête renverra une ligne par pays avec un choix d'image prévisible. Il utilise la colonne « id » pour sélectionner la « première » image pour chaque pays.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal