Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich mit GROUP_CONCAT mehrere Werte zu einer einzelnen Zeichenfolge in SQLite?

Wie kombiniere ich mit GROUP_CONCAT mehrere Werte zu einer einzelnen Zeichenfolge in SQLite?

DDD
DDDOriginal
2024-11-01 12:00:29615Durchsuche

How to Combine Multiple Values into a Single String in SQLite Using GROUP_CONCAT?

GROUP_CONCAT-Funktion in SQLite

Dieser Artikel beschreibt die Verwendung und Implementierung der GROUP_CONCAT-Funktion in SQLite, um Datengruppierung und -verkettung zu erreichen.

Einführung

Angenommen, Sie haben eine Tabelle mit den Spalten _id und Name und die Daten werden wie folgt gespeichert:

1 A
1 B
1 C
1 D
2 E
2 F
3 G
3 H
3 I
3 J
3 K

Um das gewünschte Ergebnis zu erhalten , wobei jede eindeutige _id eine verkettete Liste zugeordneter Namenswerte hat, wie unten dargestellt:

1 A,B,C,D
2 EF

Die Funktion GROUP_CONCAT kann verwendet werden, um dies zu erreichen.

Implementierung

Bei der bereitgestellten Abfrage ist ein kleines Problem aufgetreten. Um die Funktion GROUP_CONCAT korrekt zu implementieren, müssen Sie:

  • GROUP BY-Klausel angeben: Bei Verwendung von Aggregatfunktionen wie GROUP_CONCAT ist eine GROUP BY-Klausel erforderlich, um die Ergebnisse zu gruppieren.
  • Verwenden Sie JOIN für Tabellenbeziehungen: Verknüpfen Sie die erforderlichen Tabellen in den entsprechenden Spalten, um Beziehungen zwischen ihnen herzustellen.

Daher ist die überarbeitete Abfrage, die die gewünschte Ausgabe erzeugt :

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;

Alternative Syntax

Alternativ können Sie die Abfrage auch wie folgt strukturieren:

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;

Diese alternative Syntax bereitet zunächst a Unterabfrage, um die erforderlichen Daten abzurufen, und wendet dann die Funktion GROUP_CONCAT auf das Ergebnis an.

Fazit

Durch die Verwendung der Funktion GROUP_CONCAT in SQLite in Verbindung mit der JOIN-Operation und GROUP Mit der BY-Klausel können Sie Werte innerhalb einer Ergebnismenge effektiv gruppieren und verketten.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich mit GROUP_CONCAT mehrere Werte zu einer einzelnen Zeichenfolge in SQLite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn