我有例如
这样的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
答案 0 :(得分:2)
<强>语法强>
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