首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL GROUP_CONCAT 將多行數據合併為單行字符串

     編輯:MySQL 資料庫相關知識

核心語法

SELECT GROUP_CONCAT(list_name) FROM aa_list;

執行效果示意

假設 aa_list 表數據:

list_name
北京
上海
廣州
深圳

查詢結果:

北京,上海,廣州,深圳

GROUP_CONCAT 執行結果截圖

進階用法

自定義分隔符

SELECT GROUP_CONCAT(list_name SEPARATOR '; ') FROM aa_list;

結果:北京; 上海; 廣州; 深圳

去重 + 排序

SELECT GROUP_CONCAT(DISTINCT list_name ORDER BY list_name DESC SEPARATOR ',') FROM aa_list;

分組合併

SELECT category, GROUP_CONCAT(product_name ORDER BY price DESC)
FROM products
GROUP BY category;

關鍵限制與配置

參數默認值說明
group_concat_max_len1024 字節結果最大長度,超出截斷。需增大:
SET SESSION group_concat_max_len = 100000;
排序無默認不保證順序,生產環境必加 ORDER BY
NULL 值忽略NULL 不參與拼接

應用場景

  • 標籤聚合:文章標籤合併展示
  • 權限彙總:用戶角色/權限列表
  • 報表導出:多行詳情合併為單元格
  • 樹狀結構路徑拼接

性能提示

  1. 大數據量分組下慎用,臨時表開銷大
  2. 配合 SUBSTRING_INDEX 可提取前 N 項
  3. MySQL 8.0+ 考慮 JSON_ARRAYAGG() 返回結構化數組
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved