使用通配符在MySQL数据库中查找重复数据

使用通配符在MySQL数据库中查找重复数据,mysql,sql,database,duplicates,wildcard,Mysql,Sql,Database,Duplicates,Wildcard,我正在努力创建一个工作查询来搜索数据库中可能存在的重复数据 使用传统方法不起作用,因为看起来像123456和123456的数据应该被视为相同 请你们帮我写一个查询,搜索这些类型的副本 数据都在一个字段中,我们称之为“数字” Sample data: id | number 0 | 123456 1 | 124355 2 | 123432

我正在努力创建一个工作查询来搜索数据库中可能存在的重复数据

使用传统方法不起作用,因为看起来像123456和123456的数据应该被视为相同

请你们帮我写一个查询,搜索这些类型的副本

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

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

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

提前感谢

您可以替换空格,例如:

  select replace(number, ' ', '')  , count(*)
  from my_table 
  group by replace(number, ' ', '')
对于获取行过滤器,结果的计数(*)大于1


我建议另一种解决方案,使用@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, ' ', '');
选择
a、 id,a.编号,b.id作为dup_id,b.编号作为dup_编号
从…起
我的表a,
mytable b
哪里
a、 id b.id和
a、 编号=替换(b.编号,'','';
这将生成一个“报告”,以确定哪个是“源”值,哪个是“复制”值


我创建此示例是为了试验这两种方法。

请共享示例数据和预期输出空间,这是唯一的问题,还是存在其他情况?
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, ' ', '');