2016-11-21 48 views
0

我有一列名稱代表name | lastname。我想通過「|」拆分一個列,計算名稱在數據庫中出現的次數,並連接與名字相對應的所有姓氏。mysql:在一列中拆分字符串,計數,連接字符串

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 
+2

的毗連與GROUP_CONCAT – Mihai

+0

@Mihai,應該張貼作爲回答 – Rahul

回答

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)