Maison > base de données > tutoriel mysql > Comment concaténer les noms d'acteurs pour chaque film dans une base de données ?

Comment concaténer les noms d'acteurs pour chaque film dans une base de données ?

Mary-Kate Olsen
Libérer: 2025-01-15 08:32:44
original
569 Les gens l'ont consulté

How to Concatenate Actor Names for Each Movie in a Database?

Concaténer plusieurs lignes de résultats d'une même colonne, regroupées par une autre colonne

Dans une table de base de données avec des noms de colonnes tels que « film » et « acteur », vous devrez peut-être combiner plusieurs lignes d'acteurs appartenant au même film en une seule chaîne séparée par des virgules.

<code>表:

| 电影 | 演员 |
|---|---|
| A | 1 |
| A | 2 |
| A | 3 |
| B | 4 |</code>
Copier après la connexion

Résultats attendus :

<code>| 电影 | 演员列表 |
|---|---|
| A | 1, 2, 3 |
| B | 4 |</code>
Copier après la connexion

Solution utilisant la fonction string_agg() :

Pour ce faire, vous pouvez exploiter la fonction d'agrégation string_agg(). Voici la requête :

<code>SELECT 电影, string_agg(演员, ', ') AS 演员列表
FROM 表
GROUP BY 电影;</code>
Copier après la connexion

La fonction string_agg() concatène les valeurs de la colonne "Acteur", en les séparant par des virgules et des espaces. La clause GROUP BY MOVIE garantit que les résultats sont regroupés par nom de film.

Autres notes :

  1. Le 1 dans GROUP BY 1 est une référence d'index à la première colonne, dans ce cas "Films".
  2. string_agg() attend le type de données texte en entrée. Si votre colonne « acteur » a un autre type (par exemple, entier), vous devrez peut-être la convertir explicitement en texte, comme string_agg(actor::text, ', ').
  3. Vous pouvez utiliser la clause ORDER BY dans la fonction string_agg() pour trier les valeurs concaténées (par exemple, les acteurs ORDER BY).

Cette méthode fournit un moyen simple et efficace de concaténer plusieurs lignes d'une colonne spécifique et de les regrouper par une autre colonne.

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