首頁  >  文章  >  資料庫  >  如何在 SQLite 中使用 GROUP_CONCAT 將多個值組合成單一字串?

如何在 SQLite 中使用 GROUP_CONCAT 將多個值組合成單一字串?

DDD
DDD原創
2024-11-01 12:00:29492瀏覽

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

SQLite 中的 GROUP_CONCAT 函數

本文討論 SQLite 中 GROUP_CONCAT 函數的使用和實現,實現資料分組和串聯。

簡介

假設你有一個表,其中有_id和Name列,資料儲存如下:

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

得到想要的結果,其中每個唯一的_id 都有一個關聯的Name 值的串聯列表,如下所示:

1 A,B,C,D
2 EF

可以利用GROUP_CONCAT 函數來實現此目的。

實作

所提供的查詢有個小問題。若要正確實作 GROUP_CONCAT 函數,您必須:

  • 指定 GROUP BY 子句:使用 GROUP_CONCAT 等聚合函數時,需要使用 GROUP BY 子句將結果分組。
  • 使用 JOIN 建立表關係:在適當的列上連接必要的表以建立它們之間的關係。

因此,將產生所需輸出的修改後的查詢是:

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;

替代語法

或者,您也可以如下建構查詢:

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;

此替代語法先準備一個子查詢以取得必要的數據,然後對結果套用GROUP_CONCAT 函數。

結論

透過將SQLite 中的GROUP_CONCAT 函數與JOIN 運算和GROUP 結合使用BY 子句,您可以有效地將結果集中的值分組並連結。

以上是如何在 SQLite 中使用 GROUP_CONCAT 將多個值組合成單一字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn