如何在 MySQL 中使用 GROUP BY 拼接字串,以及如何設定拼接的分隔符?


要在 MySQL 中使用 GROUP BY 拼接字串,你需要將 GROUP_CONCAT() 與 SEPARATOR 引數(它可以是逗號(')或空格(' ')等)一起使用。

語法如下

SELECT yourColumnName1,GROUP_CONCAT(yourColumnName2 SEPARATOR ‘yourValue’) as anyVariableName FROM yourTableName GROUP BY yourColumnName1;

為了理解以上語法,讓我們建立一個表。建立表的查詢如下

mysql> create table GroupConcatenateDemo
   -> (
   -> Id int,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (0.99 sec)

使用 insert 命令在表中插入一些記錄。插入記錄的查詢如下

mysql> insert into GroupConcatenateDemo values(10,'Larry');
Query OK, 1 row affected (0.41 sec)
mysql> insert into GroupConcatenateDemo values(11,'Mike');
Query OK, 1 row affected (0.18 sec)
mysql> insert into GroupConcatenateDemo values(12,'John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into GroupConcatenateDemo values(10,'Elon');
Query OK, 1 row affected (0.63 sec)
mysql> insert into GroupConcatenateDemo values(10,'Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupConcatenateDemo values(11,'Sam');
Query OK, 1 row affected (0.14 sec)

使用 select 語句顯示錶中的所有記錄。查詢如下

mysql> select *from GroupConcatenateDemo;

以下是輸出

+------+-------+
| Id   | Name  |
+------+-------+
|   10 | Larry |
|   11 | Mike  |
|   12 | John  |
|   10 | Elon  |
|   10 | Bob   |
|   11 | Sam   |
+------+-------+
6 rows in set (0.00 sec)

以下是使用 GROUP BY 拼接 MySQL 中字串的查詢。根據 Id 對 GROUP BY 執行分組,並使用 MySQL 中的 GROUP_CONCAT() 函式拼接字串。

查詢如下

mysql> select Id,group_concat(Name SEPARATOR ',') as GroupConcatDemo from GroupConcatenateDemo
   -> group by Id;

以下是輸出

+------+-----------------+
| Id   | GroupConcatDemo |
+------+-----------------+
|   10 | Larry,Elon,Bob  |
|   11 | Mike,Sam        |
|   12 | John            |
+------+-----------------+
3 rows in set (0.00 sec)

更新時間: 2019 年 7 月 30 日

9K+ 次觀看

啟動您的 職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.