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

怪我咯
怪我咯original
2017-03-30 10:13:311584parcourir


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

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

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

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

SET [SESSION | GLOBAL] group_concat_max_len = val;

Quelle est la différence entre les deux ?

SET @@global.GROUP_CONCAT_MAX_LEN=4;

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

4. Utilisez l'instruction

SELECT group_concat(town) FROM `players`
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)
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!

Déclaration:
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