Maison > base de données > tutoriel mysql > Comment puis-je générer des listes séparées par des virgules à partir des résultats d'une requête MySQL ?

Comment puis-je générer des listes séparées par des virgules à partir des résultats d'une requête MySQL ?

Patricia Arquette
Libérer: 2025-01-17 01:57:08
original
285 Les gens l'ont consulté

How Can I Generate Comma-Separated Lists from MySQL Query Results?

Générer des listes séparées par des virgules à partir de données MySQL

Extraire des données dans un format spécifique, comme une liste séparée par des virgules, est une tâche courante. Supposons que vous ayez besoin de détails sur la publication et d'une liste de noms de sites associés, séparés par des virgules. Une approche naïve utilisant une sous-requête pourrait ressembler à ceci :

<code class="language-sql">SELECT p.id, p.name, 
       (SELECT name 
          FROM sites s 
         WHERE s.id = p.site_id) AS site_list
  FROM publications p</code>
Copier après la connexion

Cependant, cela produit un seul nom de site par ligne, et non une liste séparée par des virgules.

La solution : GROUP_CONCAT

La clé pour créer la liste souhaitée séparée par des virgules est la fonction GROUP_CONCAT. Cette fonction concatène plusieurs valeurs en une seule chaîne, séparées par des virgules (ou un séparateur personnalisé). Voici la requête améliorée :

<code class="language-sql">SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON (s.id = p.site_id)
GROUP BY p.id, p.name;</code>
Copier après la connexion

Cette requête révisée utilise GROUP_CONCAT(s.name) pour combiner les noms de sites. Le INNER JOIN relie efficacement les tables publications et sites, et GROUP BY p.id, p.name garantit que la fonction GROUP_CONCAT regroupe correctement les noms de sites pour chaque publication.

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