首頁 >資料庫 >mysql教程 >如何在 MySQL 中使用 GROUP_CONCAT 和 CONCAT 將多行連接成單一字串?

如何在 MySQL 中使用 GROUP_CONCAT 和 CONCAT 將多行連接成單一字串?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-13 01:00:10470瀏覽

How to Concatenate Multiple Rows into a Single String Using GROUP_CONCAT and CONCAT in MySQL?

在MySQL 中的CONCAT 中使用GROUP_CONCAT

要將多行連接成一個字串,同時將它們分組,您可以使用GROUP_CONCAT 函數。讓我們透過一個實際的例子來探索它的應用。

問題:

給定一個名為 mytbl的表,其數據如下:

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

答案:

答案:
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;

要實現此目的,您可以使用嵌套的GROUP_CONCAT 和CONCAT的組合函數:

  • 解釋:
最裡面的查詢以id 和Name 將資料分組,然後將Value 欄位與逗號連接起來作為每個組的分隔符號。

外部查詢以 id 分組並連接先前的結果連接的名稱字串,現在包含每個 id 中每個名稱的值。 這種嵌套的 GROUP_CONCAT 和 CONCAT 組合使您能夠產生所需的輸出,其中每個 id 與逗號分隔的字串關聯名稱及其對應的值。

以上是如何在 MySQL 中使用 GROUP_CONCAT 和 CONCAT 將多行連接成單一字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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