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`
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)
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!