Maison >base de données >tutoriel mysql >Comment puis-je répliquer la fonction LISTAGG() d'Oracle dans MySQL ?

Comment puis-je répliquer la fonction LISTAGG() d'Oracle dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 21:46:12860parcourir

How Can I Replicate Oracle's LISTAGG() Function in MySQL?

Fonction d'agrégation MySQL : Liste

Dans MySQL, la fonction LISTAGG() utilisée dans Oracle n'est pas disponible. Cependant, vous pouvez utiliser la fonction GROUP_CONCAT() pour obtenir une fonctionnalité similaire. Cette fonction d'agrégation combine les valeurs de plusieurs lignes en une seule chaîne.

Pour reproduire le comportement de la fonction LISTAGG() d'Oracle, vous pouvez utiliser GROUP_CONCAT() comme suit :

SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
FROM table
WHERE id < 4;

Cette requête concatènera les valeurs de la colonne MyString pour toutes les lignes où la colonne Id est inférieure à 4 et les séparera par des virgules. Le résultat sera une seule chaîne contenant les valeurs :

First, Second, Third

Vous pouvez éventuellement regrouper les résultats par différentes colonnes pour créer une liste hiérarchique. Par exemple, pour regrouper les résultats par colonne parent, vous pouvez utiliser :

SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
FROM table
GROUP BY parent_column;

Cela générera une liste de chaînes pour chaque valeur unique dans la colonne_parent.

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