mysql:在一列中拆分字符串,计数,连接字符串

时间:2016-11-21 19:37:00

标签: mysql string

我有一个代表姓名|姓氏的列。我希望用“|”拆分列,计算名称在数据库中出现的次数,并连接与名字对应的所有姓氏。

John|Bosch
John|Canon
Alex|Bosch
Nick|Müller
Alex|Lok

我知道如何分割和计算名字出现的次数,但我不知道如何连接相应的姓氏。

select count(SUBSTRING_INDEX(names, '|', 1)), SUBSTRING_INDEX(names, '|', 1)
from my_table
group by SUBSTRING_INDEX(names, '|', 1)

查询结果应为:

2 John Bosch,Canon
2 Alex Bosch, Lok
1 Nick Müller

1 个答案:

答案 0 :(得分:0)

你可以这样使用group_concat

select 
    count(SUBSTRING_INDEX(names, '|', 1)) as Num, 
    SUBSTRING_INDEX(names, '|', 1)  as Main , 
    group_concat(SUBSTRING_INDEX(names, '|', -1))  as Grouped
from my_table
group by SUBSTRING_INDEX(names, '|', 1)