建测试表:
CREATE TABLE test_001 ( id INT, type2 VARCHAR(10), bizId VARCHAR(10), batchId INT ) INSERT INTO test_001(id,type2,bizId,batchId) VALUES(1,1,'uid1',1); INSERT INTO test_001(id,type2,bizId,batchId) VALUES(2,1,'uid2',1); INSERT INTO test_001(id,type2,bizId,batchId) VALUES(3,2,'fid1',1); INSERT INTO test_001(id,type2,bizId,batchId) VALUES(4,2,'fid2',1); INSERT INTO test_001(id,type2,bizId,batchId) VALUES(5,1,'uid3',2); INSERT INTO test_001(id,type2,bizId,batchId) VALUES(6,2,'fid3',3); SELECT * FROM test_001;
第一次解决,KO!
SELECT batchId, GROUP_CONCAT(uid) AS uid, GROUP_CONCAT(typeid) AS typeid FROM (SELECT batchId, CASE WHEN type2 = '1' THEN bizId ELSE NULL END