在MySQL中将重复记录显示为不同的值,将对应的值显示为不同的逗号分隔列表?
为此,您可以使用GROUP_CONCAT()。您还需要使用DISTINCT来获取不同的记录。让我们首先创建一个表-
mysql> create table DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40), Score int );
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable(Name,Score) values('Chris',56);
mysql> insert into DemoTable(Name,Score) values('Robert',78);
mysql> insert into DemoTable(Name,Score) values('Chris',56);
mysql> insert into DemoTable(Name,Score) values('Bob',89);
mysql> insert into DemoTable(Name,Score) values('Chris',56);
mysql> insert into DemoTable(Name,Score) values('Chris',57);使用select语句显示表中的所有记录-
mysql> select *from DemoTable;
这将产生以下输出。在这里,我们重复了“名称”记录,重复的“得分”值-
+----+--------+-------+ | Id | Name | Score | +----+--------+-------+ | 1 | Chris | 56 | | 2 | Robert | 78 | | 3 | Chris | 56 | | 4 | Bob | 89 | | 5 | Chris | 56 | | 6 | Chris | 57 | +----+--------+-------+ 6 rows in set (0.00 sec)
以下是从已使用GROUPBY的表中循环记录的查询-
mysql> select Name, group_concat(DISTINCT Score separator ',') from DemoTable group by Name;
这将产生以下输出-
+--------+--------------------------------------------+ | Name | group_concat(DISTINCT Score separator ',') | +--------+--------------------------------------------+ | Bob | 89 | | Chris | 56,57 | | Robert | 78 | +--------+--------------------------------------------+ 3 rows in set (0.00 sec)
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短