mysql:拆分列中的字符串、计数、连接字符串

标签 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

最佳答案

你可以这样使用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/

相关文章:

mysql - 正确的 pdo 连接以使用重音

php - 通过代码将 PHP 连接到 MySQL

swift - 如何从 Swift 中的字符串中删除变音符号?

c# - C#字符串Thread.Sleep()

java - 从 Android 应用程序向 MySQL 数据库提交数据

mysql - 将行表格表移动到另一个具有附加数据的表格

java - 当我用Java中的Scanner类读取.txt文件时,如何只能读取字符串或整数

php - 在没有mysqli_real_escape_string的情况下在数据库中用单引号保存字符串

javascript - 生成不含 O 和 0 的大写字母和数字的随机字符串

php - 如果 PHP 不存在,则插入一条 SQL 记录