Maison > base de données > tutoriel mysql > Comment agréger des chaînes dans une liste dans MySQL (similaire au LISTAGG d'Oracle) ?

Comment agréger des chaînes dans une liste dans MySQL (similaire au LISTAGG d'Oracle) ?

Barbara Streisand
Libérer: 2024-12-04 14:15:16
original
482 Les gens l'ont consulté

How to Aggregate Strings into a List in MySQL (Similar to Oracle's LISTAGG)?

Fonction d'agrégation dans MySQL : agréger les valeurs dans une liste (similaire à LISTAGG dans Oracle)

Requête :

I need function, that returns list of strings.

I have data in table like this:

Id    MyString
------------------------
 1    First
 2    Second
 3    Third
 4    Fourth

I need function like this (something like this works in oracle):

select LISTAGG(MyString, ', ') as myList where id < 4

That returns something like this:

myList
------------------------
First, Second, Third
Copier après la connexion

Réponse :

MySQL fournit la fonction GROUP_CONCAT() pour ce but. Il regroupe les valeurs dans une liste séparée par des virgules.

Requête utilisant GROUP_CONCAT() :

select group_concat(MyString separator ', ') as myList 
from table
where id < 4
Copier après la connexion

Cette requête renverra une liste de chaînes, séparées par des virgules, pour toutes les lignes dont l'identifiant est inférieur à 4. La colonne 'myList' contiendra le total résultat.

Remarque : La fonction GROUP_CONCAT() permet un regroupement par plusieurs colonnes si nécessaire. Par exemple :

select group_concat(MyString separator ', ') as myList 
from table
where id < 4
group by another_column
Copier après la connexion

Cette requête regroupera les résultats par colonne another_column et créera une liste de chaînes pour chaque groupe.

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