【mysql】-【group_concat()】

语法

group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'])

数据准备

CREATE TABLE `t_group` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type_id` int(11) DEFAULT NULL,
  `spec_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (1, 7, 9);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (2, 7, 10);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (3, 7, 2);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (4, 8, 8);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (5, 8, 90);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (6, 8, 11);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (7, 9, 2);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (8, 9, 18);
INSERT INTO `view_db`.`t_group`(`id`, `type_id`, `spec_id`) VALUES (9, 9, 11);

查询语句

SELECT
    type_id,
    GROUP_CONCAT( DISTINCT spec_id ORDER BY  spec_id desc SEPARATOR ',' ) AS spec_ids 
FROM
    t_group
    GROUP BY type_id ;

原文地址:https://www.cnblogs.com/tsing0520/p/13035375.html