如何在MySQL中使用GROUP_CONCAT和CONCAT?
首先,让我们创建一个表。
mysql> create table GroupConcatenateDemo
-> (
-> id int,
-> FirstName varchar(100),
-> Score int
-> );
Query OK, 0 rows affected (0.61 sec)
阅读更多:MySQL 教程
插入记录
现在,让我们插入一些记录。
mysql> insert into GroupConcatenateDemo values(1,'John',94);
Query OK, 1 row affected (0.16 sec)
mysql> insert into GroupConcatenateDemo values(2,'Bob',98);
Query OK, 1 row affected (0.16 sec)
mysql> insert into GroupConcatenateDemo values(4,'Carol',100);
Query OK, 1 row affected (0.20 sec)
检查表中有多少条记录。
mysql> select *from GroupConcatenateDemo;
这是输出结果。
+------+-----------+-------+
| id | FirstName | Score |
+------+-----------+-------+
| 1 | John | 94 |
| 2 | Bob | 98 |
| 3 | Carol | 100 |
+------+-----------+-------+
3 rows in set (0.00 sec)
使用GROUP_CONCAT的语法。
以下是将记录连接起来的语法。
Select column_name1,group_concat(concat(`Column_name2`,'separatorValue',`Column_name3`) separator 'separatorValue') as AliasName yourTableName group by column_name1;
以下是一个例子。
mysql> SELECT
-> id,group_concat(concat(`FirstName`,':',`score`) separator ',')
-> as FirstNameAndScore from GroupConcatenateDemo group by id;
这是我们成功将记录连接起来的输出结果。
+------+-------------------+
| id | FirstNameAndScore |
+------+-------------------+
| 1 | John:94 |
| 2 | Bob:98 |
| 3 | Carol:100 |
+------+-------------------+
3 rows in set (0.00 sec)