我这里有这个查询 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/