2016-11-21 3 views
0

Ich habe eine Spalte Namen darstellt Name | Nachname. Ich möchte eine Spalte von aufzuspalten „|“, zählt die Anzahl der Namen in der Datenbank und verketten alle Nachnamen entsprechend den Vornamen erscheinen.mysql: split-String in einer Spalte zählen, verketten Strings

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

Ich weiß, wie zu spalten und die Anzahl der Vornamen scheinen zu zählen, aber ich weiß nicht, wie die entsprechenden Nachnamen verketten. kann

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

Concat mit GROUP_CONCAT – Mihai

+0

@Mihai sollte verwenden, die als Antwort:

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

Das Ergebnis der Abfrage sein sollte – Rahul

Antwort

0

Sie Group_concat diese Weise schreiben

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)