说明:mysql查询,按某个字段分组查询时,其他各个字段的值可能不一样,可以用逗号隔开展示
如:按性别查询学生信息,姓名、成绩等用逗号隔开
CREATE TABLE `student` (
`id` bigint(22) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`sex` int(2) DEFAULT NULL COMMENT '性别',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`yuwen` int(4) DEFAULT NULL COMMENT '语文成绩',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='学生表';
最后效果:
性别 | 姓名 | 语文成绩 | 语文总成绩 | |
男 | 张三,李四,王五 | 90,91,95 | 276 | |
女 | 撒三,王四,哲五 | 90,91,95 | 276 |
用 GROUP_CONCAT()方法;加上DISTINCT 是去重;SUM求和等
SELECT
sex as 性别,
GROUP_CONCAT(DISTINCT name SEPARATOR ', ') AS 姓名,
GROUP_CONCAT(yuwen SEPARATOR ', ') AS 语文成绩,
SUM(yuwen) as 语文总成绩
from student
WHERE sex is not null
GROUP BY sex