我如何 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 beginndate 和 enddate 每个隶属关系合并在一起。
2010-01-01-现在<>2008-01-09到2010-01-07<>2005-01-09 到 2007-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 ;
我有这个 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 beginndate 和 enddate 每个隶属关系合并在一起。
2010-01-01-现在<>2008-01-09到2010-01-07<>2005-01-09 到 2007-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 ;