将类似的行连接成一个MYSQL

时间:2018-02-12 15:03:36

标签: mysql

我有例如

这样的40行
|name | type | addr_index | numbers |
 - - - - - - - - - - - - - - - -
 john  1       46001       1,2,3 
 doe   1       67002       1,2,3 
 john  2       67002       10,22,34
 john  2       67002       7,4,3,2 

如何选择具有相同数据(名称,类型,addr_index)的行,并将数字列连接到一行?喜欢

|name | type | addr_index | numbers |
 - - - - - - - - - - - - - - - -
 john  1       46001       1,2,3 
 doe   1       67002       1,2,3 
 john  2       67002       1,2,3,10,22,34

2 个答案:

答案 0 :(得分:2)

使用GROUP_CONCAT

<强>语法

GROUP_CONCAT([DISTINCT] expr [,expr ...]
         [ORDER BY {unsigned_integer | col_name | expr}
             [ASC | DESC] [,col_name ...]]
         [SEPARATOR str_val])

默认情况下,分隔符为,。如果您需要除逗号之外的其他分隔符,则可以通过

来提供它
GROUP_CONCAT(expr separator 'char');

<强>查询

SELECT `name`, `type`, `addr_index `,
GROUP_CONCAT(`numbers`)
FROM `your_table_name`
GROUP BY `name`, `type`, `addr_index `;

答案 1 :(得分:1)

你可以使用group concat

select name, type , addr_index , group_concat( numbers )
from my_table 
group by name, type , addr_index