在 MySQL 中查找具有重复记录的 id

Posted

技术标签:

【中文标题】在 MySQL 中查找具有重复记录的 id【英文标题】:Find ids with duplicate records in MySQL 【发布时间】:2012-08-04 05:20:39 【问题描述】:

我想提取 mysql 数据库中的重复记录。

----------------------------
| id | column_a | column_b |
|----|----------|----------| 
| 1  |    a     |    b     |
| 2  |    a     |    c     |
| 3  |    a     |    d     |
| 4  |    a     |    b     |
| 5  |    b     |    e     |
| 6  |    c     |    a     |
| 7  |    c     |    d     |
| 8  |    e     |    a     |
| 9  |    e     |    a     |
----------------------------

我想将其拉出,以便显示重复的每一行。类似的东西:

------
| id |
|----|
| 1  |
| 4  |
| 8  |
| 9  |
------

---------------------------------------
| duplicate_ids | column_a | column_b |
|---------------|----------|----------| 
|      1,4      |    a     |    b     |
|      8,9      |    e     |    a     |
---------------------------------------

对如何做到这一点有任何想法吗?

【问题讨论】:

【参考方案1】:

试试GROUP_CONCAT

SELECT    GROUP_CONCAT(id), column_A, column_B
FROM      mytable
GROUP BY  columnA, columnB
HAVING    COUNT(id) > 1

【讨论】:

【参考方案2】:
SELECT
    GROUP_CONCAT(id) as ids,
    column_a,
    column_b 
FROM table
GROUP BY column_a, column_b 
HAVING COUNT(id) > 1

【讨论】:

【参考方案3】:

试试group_contact ()函数,

select group_concat(id) duplicate_ids ,column_a, column_b
from <table>
group by column_a, column_b

【讨论】:

【参考方案4】:
select group_concat(id) as duplicate_ids,
       columna, 
       columnb
from your_table
group by columna, columnb
having count(id) > 1

【讨论】:

以上是关于在 MySQL 中查找具有重复记录的 id的主要内容,如果未能解决你的问题,请参考以下文章

在MySQL中查找重复记录

Mysql删除重复记录,保留id最小的一条

MySQL中提取重复记录的查询是啥[重复]

MySQL - 在单独的列中跟踪重复记录类型

如何使用 Active Record 查找具有重复数据的记录

mysql 数据表中查找重复记录