mysql - 使用通配符在 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
提前致谢
解决方案
我建议使用@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来试验这两种方法。
推荐阅读
- javascript - 使用 Jquery 的 Bootstrap 4 动态轮播
- sql - SQL语句中的正则表达式
- jquery - 如何使用 minicart.js 将字段集值传递给 mvc 控制器
- amazon-web-services - 自定义 EC2 利用率报告
- swift - 在 imagePicker 前面显示一个视图
- android - 由于添加了对 android-P 的支持,导航抽屉无法正常工作
- c# - 过滤 ASP.NET Web API 中的响应文件
- javascript - onload 属性在 jsp 中不起作用
- sql - SQLSTATE [23000]:违反完整性约束:1048 列 'cuAddress' 不能为空
- android - 单击文本视图时加载网络视图