如何在MySQL中使用GROUP BY来连接字符串,并设置连接字符?

如何在MySQL中使用GROUP BY来连接字符串,并设置连接字符?

要在MySQL中使用GROUP BY连接字符串,您需要使用带有SEPARATOR参数的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)

使用插入命令向表中插入一些记录。插入记录的查询如下:

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)

以下是在MySQL中使用GROUP BY连接字符串的查询。按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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程