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
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
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
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!