首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL数据库中通过查询查找重复项

如何在MySQL数据库中通过查询查找重复项
EN

Stack Overflow用户
提问于 2016-08-19 01:34:15
回答 4查看 53关注 0票数 1

我需要在我的MySQL数据库中的表中找到具有相同名称但具有不同sport的重复值。下面是一个数据示例:

代码语言:javascript
复制
John Smith    Athletics
Edward Green  Athletics
Edward Green  Fencing
Jim Brown     Rugby
Jim Brown     Rowing
Jim Brown     Sailing
Stan Smith    Football
Stan Smith    Football

好的,我想进行一个查询,它给出了这个结果:

代码语言:javascript
复制
Edward Green  Athletics
Edward Green  Fencing
Jim Brown     Rugby
Jim Brown     Rowing
Jim Brown     Sailing

就像我说的,只有同名不同运动的价值观,才能找到同名的。

EN

回答 4

Stack Overflow用户

发布于 2016-08-19 01:36:07

以下是使用exists的一种选择

代码语言:javascript
复制
select *
from yourtable t
where exists (
    select 1
    from yourtable t2
    where t.name = t2.name and t.sport != t2.sport
    )

  • SQL Fiddle Demo
票数 2
EN

Stack Overflow用户

发布于 2021-12-19 20:41:08

代码语言:javascript
复制
SELECT name
FROM (SELECT DISTINCT name, sport FROM My_table) AS Temporary_table_name
GROUP BY name
HAVING ( COUNT(name) > 1 )

使用命令

代码语言:javascript
复制
SELECT DISTINCT name, sport

你排除了名字和运动的重复组合(即"Stan Smith - Football"),然后你可以放心地寻找重复的名字(因为你知道它们不会指同一项运动)

票数 1
EN

Stack Overflow用户

发布于 2016-08-19 01:40:48

内部select获取具有多个不同sport的所有name。要获得这些名称的运动,您必须在同一张表上加入

代码语言:javascript
复制
select t1.*
from your_table t1
join
(
    select name
    from your_table
    group by name
    having count(distinct sport) > 1
) t2 on t1.name = t2.name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39024294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档