首頁 > 資料庫 > mysql教程 > MySQL 的 GROUP_CONCAT 和 CONCAT 函數如何將多行轉換為單一逗號分隔的字串?

MySQL 的 GROUP_CONCAT 和 CONCAT 函數如何將多行轉換為單一逗號分隔的字串?

Patricia Arquette
發布: 2024-12-15 08:36:16
原創
413 人瀏覽過

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

在MySQL 中利用GROUP_CONCAT 和CONCAT 進行資料轉換

在MySQL 中,可以透過以下方式實現將多行資料合併為單一字串:使用GROUP_CONCAT 函數。考慮一個包含以下資訊的表格:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

目標可能是將這些資料轉換為以下格式:

id Column
1 A:4,5,B:8
2 C:9

要實現此目的,可以使用GROUP_CONCAT 和CONCAT 的組合方法可以就業。這是查詢:

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;
登入後複製

此查詢分兩個階段運行:

  1. 它首先按id 和Name 列進行分組,使用GROUP_CONCAT 函數連接每個組內的值。這會產生一個具有唯一的 id 和 Name 對的結果集,其中 Value 以逗號分隔的格式提供。
  2. 外部 group by id 操作進一步組合內部查詢的結果,從而產生單行每個唯一的 id 都有一個以逗號分隔的名稱:值對列表。

執行此查詢,您將獲得所需的資料轉換,其中的行如下格式:

id Column
1 A:4,5,B:8
2 C:9

以上是MySQL 的 GROUP_CONCAT 和 CONCAT 函數如何將多行轉換為單一逗號分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板