当前位置: 首页 > 面试题库 >

在MySQL中查找重复记录

经和歌
2023-03-14
问题内容

我想在MySQL数据库中提取重复记录。这可以通过以下方式完成:

SELECT address, count(id) as cnt FROM list
GROUP BY address HAVING cnt > 1

结果是:

100 MAIN ST    2

我想将其拉出,以使其显示重复的每一行。就像是:

JIM    JONES    100 MAIN ST
JOHN   SMITH    100 MAIN ST

关于如何做到这一点有什么想法?我试图避免做第一个,然后在代码中用第二个查询查找重复项。


问题答案:

关键是重写此查询,以便可以将其用作子查询。

SELECT firstname, 
   lastname, 
   list.address 
FROM list
   INNER JOIN (SELECT address
               FROM   list
               GROUP  BY address
               HAVING COUNT(id) > 1) dup
           ON list.address = dup.address;


 类似资料:
  • 我有一个名为“user_links”的PostgreSQL数据库表,该表当前允许以下重复字段: 唯一约束当前是第一个名为“id”的字段,但是我现在希望添加一个约束,以确保、、和都是唯一的,但我无法应用约束,因为已经存在违反此约束的重复值。 有没有找到所有重复的方法?

  • 假设我有一个如下所示的验证表。 在上表中,如果我们观察到场景id 1和3具有相同的验证id 100、101和102。 在这种情况下,我可以说scenario_id=1是scenario_id=3的重复。 我可以得到一个MySql查询来找到这样的重复。 提前谢谢。

  • 问题内容: 我有一个带有varchar列的表,我想在此列中查找具有重复值的所有记录。我可以用来查找重复项的最佳查询是什么? 问题答案: 用子句做一个。假设 name 是您要在其中查找重复项的列: 这将返回在第一列中具有 名称 值的结果,并计算该值在第二列中出现的次数。

  • 问题内容: 范例: 在此表中,我需要获得Empid 1作为输出。因为它的bookid 8不止一次。 提前致谢.. 问题答案: 您可以使用: 但这会给您重复的内容。例如,如果您有1-8,1-8,1-9,1-9,则会得到1,1的输出,因为Empid 1具有两个不同bookid值的重复bookid。您将需要使用来过滤出重复的Empid。

  • 在Mongo shell中,我将如何过滤今天(或特定日期)添加的记录?我没有新记录时间戳的特定字段,但我想它可以从ObjectID恢复。

  • 问题内容: 我有一张很大的桌子,上面有关于用户的以下数据。 我想在ssn等于但名称不等于的表中找到所有可能的重复项 我的尝试是: 问题答案: 在SSN上进行分组应该做到这一点 ~~~~ ..或如果每个ssn有很多行,而只想查找重复的名称) 编辑,糟糕,被误解