如何在MySQL中按名字分组?

ilh*_*han 1 mysql sql

我有一个表,其中有一个全名列.我希望得到唯一的给定名称或给出的名称,按其出现的次数排序.

fullname
-----------
Barack Hussein Obama
Michael Jackson
William Jefferson Blythe
Michael Bloomberg
Run Code Online (Sandbox Code Playgroud)

所以输出也是

Barack Hussein Obama
William Jefferson Blythe
Run Code Online (Sandbox Code Playgroud)

要么

Barack Hussein Obama
William Jefferson Blythe
Michael Jackson
Michael Bloomberg
Run Code Online (Sandbox Code Playgroud)

要么

1|Barack
1|William
2|Michael
Run Code Online (Sandbox Code Playgroud)

这样的事情.我的目标是在我的数据库中看到外国学生.我只有他们的全名来猜测.

vhu*_*vhu 5

您可以使用SUBSTRING_INDEX(fullname,' ',1)根据您的定义提取"给定名称".

然后,您可以将其用于分组或排序,例如

SELECT COUNT(*),SUBSTRING_INDEX(fullname,' ',1) AS givenname 
 FROM yourtable 
 GROUP BY givenname;
Run Code Online (Sandbox Code Playgroud)