我可以把它降到一行,但是要用额外的逗号:-(
select ID1,
group_concat( if( `Type` = 'A', ID2, '') ) A,
group_concat( if( `Type` = 'B', ID2, '') ) B
from tab
group by ID1
给予:
+------+------+------+
| ID1 | A | B |
+------+------+------+
| 1 | x,y, | ,,z |
+------+------+------+
提供NULL而不是“”可修复此问题:
select ID1,
group_concat( if( `Type`='A', ID2, NULL)) A,
group_concat( if(`Type`='B', ID2, NULL)) B
from tab
group by ID1;
给予:
+------+------+------+
| ID1 | A | B |
+------+------+------+
| 1 | x,y | z |
+------+------+------+