Mysql SQL-如何连接其中一列
可能重复:Mysql SQL-如何连接其中一列,mysql,sql,Mysql,Sql,可能重复: 我的SQL:我有一个表,它有3列: ╔═════╦═════╦════════╗ ║ ID1 ║ ID2 ║ ANSWER ║ ╠═════╬═════╬════════╣ ║ 1 ║ 2 ║ 4 ║ ║ 1 ║ 2 ║ 5 ║ ║ 1 ║ 4 ║ 8 ║ ╚═════╩═════╩════════╝ 我想要一张这样的桌子: ╔═════╦═════╦════════╗ ║ ID1 ║ ID2 ║ ANSWER ║ ╠════
我的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只能有一行。在MySQL中,您可以使用带有GROUP BY
的函数将答案
值连接到同一行中:
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 |
既然您现在已经提到您正在使用
MySQL
,那么您可以利用GROUP\u CONCAT
SELECT ID1, ID2, GROUP_CONCAT(Answer SEPARATOR ' + ') AnswerList
FROM tableName
GROUP BY ID1, ID2