如何在 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)
广告