2015-12-15 138 views
0

我有一个名为'emails'的列表。我需要一个查询来选择只在表中出现一次的电子邮件。MySql:选择唯一值

所以当'emails'列有([email protected][email protected][email protected]) 我只想选择[email protected]

我曾尝试以下查询:

SELECT DISTINCT `emails` FROM `table` 

但问题是,它选择[email protected][email protected]

我需要一个查询什么只会选择[email protected]

任何人都可以帮助我吗?

+3

'SELECT COUNT(*)作为CNT,电子邮件从表组通过电子邮件有cnt = 1' –

+1

'通过电子邮件从表组中选择电子邮件计数(*)= 1' –

+0

@AbhikChakraborty完美的作品!谢谢!你不应该创建一个我可以接受的答案吗? – SiteHopper

回答

1

您可以使用以下

select 
count(*) as cnt, 
email from table 
group by email having cnt = 1 

如果你有一个自增的主键,然后你有其他的方法,以及一些如

select * from table t1 
where not exists (
select 1 from table t2 
where t1.email = t2.email 
and t1.id <> t2.id 
);