【问题标题】:MySQL: Select all rows from select distinctMySQL:从 select distinct 中选择所有行
【发布时间】:2017-10-05 10:31:55
【问题描述】:

我想做一个特定的查询

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

这意味着我的查询存在根本缺陷。

有人可以帮我解决我的问题吗?提前谢谢你。

【问题讨论】:

  • 添加一些示例表数据和预期结果。请格式化文本。 (不是图片。)
  • 您是否尝试过使用“分组依据”?是否需要聚合?

标签: mysql sql select distinct


【解决方案1】:

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

【讨论】:

  • 这不会删除重复项。所以它对我不起作用。我需要删除“名称”列重复的所有行。
  • 您能否提供一个示例数据集,显示您想要的内容,以供参考?
【解决方案2】:

此查询将为您提供重复项的 id:

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

你可以放

having count(id)=1

如果你想知道那些没有重复的

【讨论】:

  • 这不会返回所有列。所以它对我不起作用。我需要删除“名称”列重复的所有行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
相关资源
最近更新 更多