Maison > Article > base de données > Comment combiner plusieurs valeurs en une seule chaîne dans SQLite à l'aide de GROUP_CONCAT ?
Fonction GROUP_CONCAT dans SQLite
Cet article traite de l'utilisation et de la mise en œuvre de la fonction GROUP_CONCAT dans SQLite pour réaliser le regroupement et la concaténation de données.
Introduction
Supposons que vous ayez une table avec les colonnes _id et Name, et que les données soient stockées comme suit :
1 A 1 B 1 C 1 D 2 E 2 F 3 G 3 H 3 I 3 J 3 K
Pour obtenir le résultat souhaité , où chaque _id unique a une liste concaténée de valeurs Name associées, comme illustré ci-dessous :
1 A,B,C,D 2 EF
La fonction GROUP_CONCAT peut être utilisée pour y parvenir.
Implémentation
Un problème mineur est survenu dans la requête fournie. Pour implémenter correctement la fonction GROUP_CONCAT, vous devez :
Par conséquent, la requête révisée qui produira le résultat souhaité est :
SELECT AI._id, GROUP_CONCAT(Name) AS GroupedName FROM ABSTRACTS_ITEM AI JOIN AUTHORS_ABSTRACT AAB ON AI._id = AAB.ABSTRACTSITEM_ID JOIN ABSTRACT_AUTHOR AAU ON AAU._id = AAB.ABSTRACTAUTHOR_ID GROUP BY AI._id;
Syntaxe alternative
Alternativement, vous pouvez également structurer la requête comme suit :
SELECT ID, GROUP_CONCAT(NAME) FROM (select ABSTRACTS_ITEM._id AS ID, Name from ABSTRACTS_ITEM , ABSTRACT_AUTHOR , AUTHORS_ABSTRACT where ABSTRACTS_ITEM._id = AUTHORS_ABSTRACT.ABSTRACTSITEM_ID and ABSTRACT_AUTHOR._id = AUTHORS_ABSTRACT.ABSTRACTAUTHOR_ID) GROUP BY ID;
Cette syntaxe alternative prépare d'abord un sous-requête pour récupérer les données nécessaires, puis applique la fonction GROUP_CONCAT sur le résultat.
Conclusion
En employant la fonction GROUP_CONCAT dans SQLite en conjonction avec l'opération JOIN et GROUP Clause BY, vous pouvez regrouper et concaténer efficacement des valeurs dans un ensemble de résultats.
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!