在MySql中按值返回组

时间:2016-03-25 19:13:05

标签: mysql group-by

考虑以下脚本来创建表结构和示例数据

CREATE TABLE TableA (
FieldA VARCHAR(30),
FieldB VARCHAR(30),
FieldX varchar(50)
);
Insert into TableA (FieldA,FieldB,FieldX)
Values
('Big','Red','Apple'),
('Big','Red','Orangatang'),
('Small','Red','Cherry'),
('Small','Red','Ladybug')

如果我按照FieldA运行带分组的选择,FieldB如下所示

Select FieldA,FieldB from TableA group by FieldA,FieldB

是否有可能以某种方式从每个组中的记录中提取所有FieldX值?理想情况下,我想要一个输出:

Big    | Red | 'Apple','Orangatang'
Small  | Red | 'Cherry','Ladybug'

SQLFiddle Demo

2 个答案:

答案 0 :(得分:2)

您可以使用MySQL函数group_concat执行此操作:

{{1}}

答案 1 :(得分:2)

group_concat应该这样做:

SELECT   fielda, fieldb, GROUP_CONCAT(fieldx)
from     tablea
GROUP BY fielda, fieldb