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 函數,您必須:
因此,將產生所需輸出的修改後的查詢是:
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中文網其他相關文章!