Maison  >  Article  >  base de données  >  Comment combiner plusieurs valeurs en une seule chaîne dans SQLite à l'aide de GROUP_CONCAT ?

Comment combiner plusieurs valeurs en une seule chaîne dans SQLite à l'aide de GROUP_CONCAT ?

DDD
DDDoriginal
2024-11-01 12:00:29492parcourir

How to Combine Multiple Values into a Single String in SQLite Using 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 :

  • Spécifier la clause GROUP BY : lors de l'utilisation de fonctions d'agrégation comme GROUP_CONCAT, une clause GROUP BY est requise pour regrouper les résultats.
  • Utilisez JOIN pour les relations entre les tables : joignez les tables nécessaires sur les colonnes appropriées pour établir des relations entre elles.

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!

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