2017-10-05 144 views
0

所有行我愿做一个具体的查询MySQL的:从选择不同

select distinct name 
from tablename 

删除重复。但是这只给了我名字。从“选择表不同的名字:”我想所有的列有一个WHERE条件返回:

select * 
from tablename 
where value= 1 

我尝试这样做:

select * 
from tablename 
where value = 1 and exists (select distinct name 
          from tablename) 

不幸的是它返回相同的数据:

select * 
from tablename 
where value = 1 

这意味着我的查询中存在一个基本缺陷。

有人可以帮我解决我的问题。先谢谢你。

+0

添加一些示例表数据和预期结果。请格式化文本。 (不是图片。) – jarlh

+0

你有没有尝试过使用'group by'?是否需要聚合? –

回答

0

你可以试试这个select field1, field2, field3 from tablename group by field2

+0

这并不删除重复项。所以它不适合我。我需要删除“名称”列中有重复的所有行。 –

+0

您能否提供一个示例数据集,显示您想要的内容以供参考? –

0

该查询会给你,你有重复的ID:

select distinct id 
from table1 
group by id 
having count(id)>1 

,你可以把

having count(id)=1 

,如果你想了解的人那些不重复

+0

这不会返回所有列。所以它不适合我。我需要删除“名称”列中有重复的所有行。 –