首页 > 解决方案 > 使用通配符在 MySQL 数据库中查找重复数据

问题描述

我正在努力创建一个工作查询,该查询将在 out 数据库中搜索可能的重复数据。

使用常规方法不起作用,因为看起来像 123456 和 123 456 的数据应该被认为是相同的。

请你们帮我写一个查询来搜索这些重复项。

数据都在一个字段中,我们称之为“数字”。

Sample data: 
id                    | number
0                     | 123456
1                     | 124355
2                     | 123432
3                     | 123 456

Expected output:
id               | number
0                | 123456
3                | 123 456

提前致谢

标签: mysqlsqldatabaseduplicateswildcard

解决方案


我建议使用@scaisEdge 在其正确答案中使用的替换技巧的替代解决方案。

SELECT 
  a.id, a.number, b.id as dup_id, b.number as dup_number 
FROM 
  mytable a,
  mytable b
WHERE
  a.id <> b.id and
  a.number = replace(b.number, ' ', '');

这会产生一份“报告”来识别哪个是“源”值和“重复”值。

我创建了这个sql fiddle来试验这两种方法。


推荐阅读