我有一列名称,代表姓名|姓氏。我想用“|”分割列,计算名称在数据库中出现的次数,并将与名字相对应的所有姓氏连接起来。
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
最佳答案
你可以这样使用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)
关于mysql:拆分列中的字符串、计数、连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40727997/