简介
本文介绍MySQL怎样将GROUP BY(分组)的结果拼接起来。
问题描述
GROUP BY可以根据某几个字段将内容分组,但这样只能返回一条数据,怎样返回某个字段的所有数据?
问题复现
使用表info作为示例
1.查看原始数据
SELECT locus,id,journal FROM info WHERE locus IN('AB086827','AF040764');
结果:
+----------+----+--------------------------+ | locus | id | journal | +----------+----+--------------------------+ | AB086827 | 1 | Unpublished | | AB086827 | 2 | Submitted (20-JUN-2002) | | AF040764 | 23 | Unpublished | | AF040764 | 24 | Submitted (31-DEC-1997) | +----------+----+--------------------------+
2.GROUP BY
解决方案
使用GROUP_CONCAT,将指定的字段进行连接(默认用逗号)。
SQL语句:
SELECT locus, GROUP_CONCAT( id ), GROUP_CONCAT( journal ) FROM info WHERE locus IN ( 'AB086827', 'AF040764' ) GROUP BY locus;
结果:
请先
!