Maison > base de données > tutoriel mysql > Résumé de l'utilisation de la fonction group_concat() dans MySQL

Résumé de l'utilisation de la fonction group_concat() dans MySQL

怪我咯
Libérer: 2017-03-30 10:13:31
original
1589 Les gens l'ont consulté


L'exemple de cet article décrit l'utilisation de la fonction mysql group_concat(). Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

group_concat(), le manuel indique : Cette fonction renvoie un avec une valeur non NULL de la connexion depuis un groupe >Stringresult. Relativement abstrait et difficile à comprendre.

Pour le comprendre de manière simple, c'est en fait comme ceci : group_concat() calculera quelles lignes appartiennent au même groupe et affichera les colonnes appartenant au même groupe. Les colonnes à renvoyer sont déterminées par le paramètre de fonction (qui est le nom du champ). Groupe doit avoir une norme, qui consiste à regrouper selon la colonne spécifiée par group by.

La fonction group_concat doit exécuter l'instruction group by en interne. C'est mon hypothèse.

1. Énoncé du test :

SELECT group_concat(town) FROM `players` group by town
Copier après la connexion

Le résultat est de trouver quelles valeurs en ville sont les mêmes. Si elles sont égales, faites la liste. Listez-les tous séparés par des virgules, comme suit :

group_concat(town)

Pékin, Pékin

Changsha

2. Testez-les. :

SELECT group_concat( town )
FROM players
Copier après la connexion

Résultat :

group_concat(town)

Changsha, Pékin, Pékin,

Ce qui précède peut-il prouver que group_concat uniquement Peut-il être efficace lorsqu'il est utilisé simultanément avec l'instruction group by ? Ce qui suit est un test réel

3 Testez l'impact des constantes sur la configuration de group_concat(. ) :

SET @@GROUP_CONCAT_MAX_LEN=4
Copier après la connexion

La syntaxe de réglage mentionnée dans le manuel est la suivante :

SET [SESSION | GLOBAL] group_concat_max_len = val;
Copier après la connexion

Quelle est la différence entre les deux ?

SET @@global.GROUP_CONCAT_MAX_LEN=4;
Copier après la connexion

global peut être omis, alors il devient : SET @@GROUP_CONCAT_MAX_LEN=4;

4. Utilisez l'instruction

SELECT group_concat(town) FROM `players`
Copier après la connexion
<🎜. >Le résultat est :

group_concat(town)


Changsha, Pékin, Changsha, Pékin


Conclusion : La fonction group_concat() doit être utilisée avec l'instruction group by, pour obtenir l'effet souhaité.
La raison peut être comprise comme suit : group_concat() récupère tous les membres appartenant au groupe x (les paramètres de colonne dans la fonction spécifient quels champs doivent être affichés). D'où vient le groupe X ? S'il n'y a pas de groupe spécifié, alors il n'y a aucun moyen de savoir selon quel groupe group_concat() affichera les membres. Par conséquent, lorsqu'il n'y a pas de clause de groupe par comme ci-dessus, Changsha et Pékin sont affichés.


Quand cette fonction est-elle réellement nécessaire ?
Supposons que le résultat de la requête soit le suivant : le nom du groupe est affiché à gauche et toutes les informations sur les membres du groupe sont affichées à droite. Grâce à cette fonction, vous pouvez enregistrer beaucoup de choses.

Aussi, si je l'utilise comme ceci : SELECT group_concat( name, sex ) FROM `players` town. Cela n'a pas beaucoup de sens. group_concat() spécifiant une colonne est le meilleur des cas. Si plusieurs colonnes sont spécifiées. Ensuite, le résultat d'affichage est similaire à ceci :

group_concat(name,sex)
Copier après la connexion
Wang Tao, Wang Xiaoming mâle, Liu Huinv, Shu Ming femelle



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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal