1. 程式人生 > >MySQL拼接字串,GROUP_CONCAT 值得擁有

MySQL拼接字串,GROUP_CONCAT 值得擁有

上一篇文章 跨表更新,看到自己寫的SQL像個憨憨寫了關於跨表個更新的內容。一年過的很快,文中後來的兩位員工 馮大馮二 也要面對無情的 KPI 考核了,他們工作乾的很不錯,performance 分別是 4 和 5

新需求來了,靜悄悄的來了!!! 領導想要檢視每個 performance 下都有誰,同時要求將這些人的名稱要逗號拼接成一個字串,也就是說要得到下面的結果:

要將結果集中某個指定的列進行字串拼接,這要怎麼做呢?主角閃亮✨登場

GROUP_CONCAT(expr)

在 Mysql 官方文件 中,該函式被放在聚合函式章節,如果你要按照指定欄位分組拼接,就要配合關鍵字 GROUP BY

來使用的

定義

該函式返回一個字串結果,該字串結果是通過分組串聯的非NULL值。如果沒有非NULL值,則返回NULL。完整語法如下:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

What? 這個語法看著太複雜了吧,彆著急,下面會用例子慢慢說明逐一驗證滴

使用案例

先完成文章開頭的需求:

SELECT performance, GROUP_CONCAT(employee_name) AS employees
FROM employees
GROUP BY performance;

zou是這個結果:

到這裡,領導給過來的需求就完成了