mysql - 在 MySQL 中查找没有命名列的重复记录

标签 mysql sql

我有一个这样的表:

**lead_id** **form_id** **field_number** **value**

1           2           1                Richard
1           2           2                Garriot

2           2           1                Hellen
2           2           2                Garriot

3           2           1                Richard
3           2           2                Douglas

4           2           1                Tomas
4           2           2                Anderson

其中 field_number = 1 是姓名,field_number = 2 是姓氏。

我想查找姓名或姓氏相同的条目,并按 lead_id 对它们进行分组,因此输出可能如下所示:

1
2
3

对于如何做到这一点有什么想法吗?

最佳答案

这应该有效并且相当高效(取决于索引):

select distinct lead_id
from tablename as t1
where exists (
  select 1
  from tablename as t2
  where t1.field_number = t2.field_number
  and   t1.value = t2.value 
  and   t1.lead_id <> t2.lead_id 
  )

关于mysql - 在 MySQL 中查找没有命名列的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23329624/

相关文章:

mysql - Liquibase 无法在 MySQL 上添加非空、唯一、当前时间戳

mysql - 转义字符串应该是 "unescaped"(MySQL、Node.js)吗?

javascript - 使用 AJAX 获取 MySQL 的 PHP 表单

mysql - SQL从查询结果中删除重复项

sql - 只打印列中的最大值

jquery - Mysql 查询与 JSP 和 JQuery 无需刷新

mysql - 如何根据另一列重置 id 列

java - SQL异常 : ORA-01008: not all variables bound -- SQL error using java to query database JDBC

mysql - 跨服务器,标准 SQL 生成逗号分隔列表

asp.net - 分析场景性能?