-1

可能重复:
将多行连接成一个文本字符串?

我的 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 只有一行

4

2 回答 2

1

在 MySQL 中,您可以使用GROUP_CONCAT()带有 a 的函数GROUP BY来获取Answer连接到同一行的值:

select id1,
  id2,
  group_concat(answer SEPARATOR ' + ') as Answer
from yourtable
group by id1,  id2

请参阅SQL Fiddle with Demo

这会产生结果:

| ID1 | ID2 | ANSWER |
----------------------
|   1 |   2 |  4 + 5 |
|   1 |   4 |      8 |
于 2013-02-04T14:43:07.420 回答
1

既然你现在提到你正在使用MySQL,你可以利用GROUP_CONCAT.

SELECT ID1, ID2, GROUP_CONCAT(Answer SEPARATOR ' + ') AnswerList
FROM tableName
GROUP BY ID1, ID2
于 2013-02-04T14:43:36.580 回答