Maison > base de données > tutoriel mysql > Comment puis-je concaténer plusieurs lignes MySQL en un seul champ ?

Comment puis-je concaténer plusieurs lignes MySQL en un seul champ ?

Linda Hamilton
Libérer: 2025-01-25 09:21:09
original
145 Les gens l'ont consulté

How Can I Concatenate Multiple MySQL Rows into a Single Field?

Combinaison de plusieurs lignes MySQL en un seul champ

Les jointures MySQL renvoient souvent de nombreuses lignes, ce qui rend l'analyse des données fastidieuse. Cet article montre comment combiner efficacement plusieurs lignes en un seul champ pour une manipulation plus facile.

La fonction GROUP_CONCAT est la clé de ce processus. Par exemple :

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>
Copier après la connexion

Cette requête regroupe les loisirs par person_id, en les concaténant avec des virgules comme séparateurs.

Pour supprimer les doublons, utilisez DISTINCT :

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>
Copier après la connexion

Pour les résultats triés, utilisez ORDER BY :

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>
Copier après la connexion

N'oubliez pas que GROUP_CONCAT a une limite par défaut de 1 024 octets. Pour augmenter cela, utilisez :

<code class="language-sql">SET group_concat_max_len = 2048;</code>
Copier après la connexion

Ou, calculez dynamiquement la longueur requise :

<code class="language-sql">SET group_concat_max_len = CAST(
                     (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
                           FROM peoples_hobbies
                           GROUP BY person_id) AS UNSIGNED);</code>
Copier après la connexion

GROUP_CONCAT simplifie la manipulation des données en consolidant plusieurs lignes en un seul champ plus gérable.

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