Maison >base de données >tutoriel mysql >Comment remplacer le GROUP_CONCAT de MySQL par le STRING_AGG de PostgreSQL ?

Comment remplacer le GROUP_CONCAT de MySQL par le STRING_AGG de PostgreSQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 09:17:101055parcourir

How to Replace MySQL's GROUP_CONCAT with PostgreSQL's STRING_AGG?

Migration de GROUP_CONCAT de MySQL vers STRING_AGG de PostgreSQL

La fonction GROUP_CONCAT de MySQL combine efficacement les valeurs de plusieurs lignes en une seule chaîne. PostgreSQL propose la fonction STRING_AGG pour obtenir le même résultat.

La solution :

Pour répliquer les fonctionnalités de GROUP_CONCAT dans votre base de données PostgreSQL, utilisez la fonction STRING_AGG dans votre requête. Par exemple, si vous souhaitez concaténer les valeurs d'une colonne nommée some_column pour chaque id unique, la requête ressemblerait à ceci :

<code class="language-sql">SELECT id, STRING_AGG(some_column, ',')
FROM the_table
GROUP BY id;</code>

Explication détaillée :

  • STRING_AGG(some_column, ',') : Cette partie de la requête concatène les valeurs trouvées dans la colonne some_column. Le , spécifie une virgule comme séparateur entre les valeurs concaténées. Vous pouvez remplacer ce séparateur par n'importe quel autre caractère ou chaîne selon vos besoins.
  • GROUP BY id : Cela regroupe les lignes en fonction de la colonne id. La fonction STRING_AGG opère ensuite sur chaque groupe séparément, concaténant les valeurs uniquement au sein du même groupe id.

Résultat attendu :

La requête générera une sortie similaire à celle que vous obtiendriez avec GROUP_CONCAT:

de MySQL
<code>id    | string_agg
------+-----------------
TM67  | 4,9,72
TM99  | 2,3</code>

Cela démontre une traduction directe et efficace des capacités de la fonction MySQL GROUP_CONCAT dans un contexte PostgreSQL à l'aide de STRING_AGG.

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