MY SQL:我有一个包含3列的表:
╔═════╦═════╦════════╗
║ ID1 ║ ID2 ║ ANSWER ║
╠═════╬═════╬════════╣
║ 1 ║ 2 ║ 4 ║
║ 1 ║ 2 ║ 5 ║
║ 1 ║ 4 ║ 8 ║
╚═════╩═════╩════════╝
我想要一张看起来像这样的表:
╔═════╦═════╦════════╗
║ ID1 ║ ID2 ║ ANSWER ║
╠═════╬═════╬════════╣
║ 1 ║ 2 ║ 4 + 5 ║
║ 1 ║ 4 ║ 8 ║
╚═════╩═════╩════════╝
含义:如果我对id1和id2有不同的答案,我希望它们在一行中有一些分隔符(可以是+或其他),每对id1只能有一行,id2
答案 0 :(得分:1)
在MySQL中,您可以将GROUP_CONCAT()
函数与GROUP BY
一起使用,以将Answer
值连接到同一行:
select id1,
id2,
group_concat(answer SEPARATOR ' + ') as Answer
from yourtable
group by id1, id2
这会产生结果:
| ID1 | ID2 | ANSWER |
----------------------
| 1 | 2 | 4 + 5 |
| 1 | 4 | 8 |
答案 1 :(得分:1)
由于您现在已经提到使用MySQL
,因此您可以利用GROUP_CONCAT
。
SELECT ID1, ID2, GROUP_CONCAT(Answer SEPARATOR ' + ') AnswerList
FROM tableName
GROUP BY ID1, ID2