mysql - SQL获取不同的名字和姓氏

标签 mysql sql distinct

我这里有这个查询 select distinct id, FirstName, LastName 来自表

这会返回一个人员列表,首先是一些 ID 返回重复项,但我使用 distinct 来解决这个问题,但我仍然有一个问题,有些人是重复的。

是否也可以在名字和姓氏以及 ID 上分开放置? (有些结果没有 id)

结果(没有不同的 id):

id - 01 - firstname - james - lastname - smith
id - 01 - firstname - james - lastname - smith
id - 02 - firstname - john - lastname - hicks
id - 02 - firstname - john - lastname - hicks
id -    - firstname - tom - lastname - nicks
id -    - firstname - tom - lastname - nicks

期待:

id - 01 - firstname - james - lastname - smith
id - 02 - firstname - john - lastname - hicks
id -    - firstname - tom - lastname - nicks

最佳答案

您有重复项,因为您在 select 中包含了 id:

select distinct FirstName, LastName
from table;

如果您需要 id 作为名称,请使用 group by:

select min(id) as id, FirstName, LastName
from table
group by FirstName, LastName;

编辑:

如果这些查询仍然重复,那么您的名称中有一些字符会导致错误。我将从修剪前导和尾随空格开始,看看这是否解决了重复问题:

select min(id) as id, trim(FirstName) as FirstName, trim(LastName) as LastName
from table
group by trim(FirstName), trim(LastName);

关于mysql - SQL获取不同的名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024473/

相关文章:

mysql - 将 MySQL 数据库从 latin1 更新为 utf8mb4 : max key length is 767 bytes

mysql - 表之间的 SQL 右连接

sql - 如何使用 SQL 在 MS Access 中使用 'DROP' 和未命名关系/约束?

mysql - 独特 - 哪些元素被拿走了?第一次出现还是最后一次出现?

sql - Oracle SQL - 如何使用 RANK() 或 DENSE_RANK() 和 ROW_NUMBER() 分析函数获取不同的行?

php - 选择不重复的多行

mysql - Active Record 第三层关系查询

mysql - Subsonic 3.0.0.3 与 MySQL 4template 无法正常工作

php - sqlsrv_connect() 保持应用程序池中的连接处于事件状态

mysql查询显示为名为department的列创建的所有枚举值?