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

DDD
發布: 2024-11-01 12:00:29
原創
491 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!