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
294 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!

source:php.cn
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