我如何 group_concat 这个 mysql 字段

How can I group_concat this mysql fields

我有这个 MySQL 查询:

 SELECT a.orcidid 
 , GROUP_CONCAT(distinct a.`from` SEPARATOR '<>' ) as StartDate
 , GROUP_CONCAT(distinct a.`to` SEPARATOR '<>' ) as EndDate
 from orcidaffils a
 GROUP BY a.orcidid ;

对于此数据 Table:

 CREATE TABLE `orcidaffils` (
 `recid` int(11) NOT NULL AUTO_INCREMENT,
 `affil` varchar(6000) DEFAULT NULL,
 `orcidid` varchar(100) DEFAULT NULL,
 `city` varchar(100) DEFAULT NULL,
 `country` varchar(100) DEFAULT NULL,
 `from` date DEFAULT NULL,
 `to` date DEFAULT NULL,
  PRIMARY KEY (`recid`)
  ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

  -- ----------------------------
  -- Records of orcidaffils
  -- ----------------------------
  INSERT INTO `orcidaffils` VALUES ('2', 'Graz University of Technology', '0000-0004-1034-5187', 'Graz', 'AT', '2010-01-01', null);
  INSERT INTO `orcidaffils` VALUES ('3', 'Ecole Polytechnique', '0000-0004-1034-5187','Palaiseau', 'FR', '2008-09-01', '2010-07-01');
  INSERT INTO `orcidaffils` VALUES ('4', 'University of Würzburg', '0000-0004-1034-5187', 'Wurzburg', 'DE', '2005-09-01', '2007-12-01');

不,我想得到这个输出:

问题是如何group_concat beginndateenddate 每个隶属关系合并在一起。

2010-01-01-现在<>2008-01-092010-01-07<>2005-01-092007-01-12

感谢任何有用的建议。

根据你提到的图像 你可以尝试这样的事情:

 SELECT a.orcidid ,
   GROUP_CONCAT(a.`affil` SEPARATOR '<>' )
 , GROUP_CONCAT(CONCAT(a.`from`, ' to ', IFNULL(a.`to`,'now')) SEPARATOR '<>' ) AS StartDate
 FROM orcidaffils a
 GROUP BY  a.orcidid ;