我正在尝试找到潜在的重复记录。例如。 哪里
所以FirstName,LastName和DOB都是一样的。或FirstName,LastName和StreetAddress。或LastName,DOB和SteetAddress。等等......
我的客户想要记录4个值中的3个相同的记录。 可以在MySql中完成吗?或者我需要在PHP中进行一些处理吗?
答案 0 :(得分:1)
只需使用SELECT DISTINCT:
SELECT DISTINCT first, last, dob, street
FROM Your_Table
答案 1 :(得分:0)
客户(id,firstname,dob)
检索具有相同名字的客户ID:
select a.id
from customer a, customer b
where (a.firstname=b.firstname and a.lastname=b.lastname and a.dob=b.dob) or
(a.firstname=b.firstname and a.lastname=b.lastname and a.address=b.address) or
(a.firstname=b.firstname and a.dob=b.dob and a.address=b.address) or
(a.lastname=b.lastname and a.dob=b.dob and a.address=b.address);
否则你必须自己加入桌子:
Database = DATABASE
Tables inside = Table1, Table2, Table3
答案 2 :(得分:0)
首先添加一个索引:
alter table whatever add key(DOB,LastName,FirstName,StreetAddress);
然后查看是否有三个字段中的重复行 - 在本例中为DOB,FN和LN:
select DOB,LastName,FirstName,StreetAddress from whatever t1
inner join (
select DOB,LastName,FirstName,StreetAddress from whatever
group by DOB,LastName,FirstName,StreetAddress ) as t2
on t1.DOB=t2.DOB
and t1.LastName=t2.LastName
and t1.FirstName=t2.FirstName
where t1.StreetAddress != t2.StreetAddress;
查找其他组合,更改您加入的字段以及where子句中的字段。