Php 在数据库中查找可能的重复项
我有一个存储多个列的数据库,我正在尝试创建高效的sql查询,该查询将根据选定的1列或更多列输出所有可能的重复项 所以,例如,如果我有一个数据库,它有名字和姓氏电话,我希望能够找到重复的名字和姓氏。我只想输出数据库中的数据两次以上,因此正确的输出如下:Php 在数据库中查找可能的重复项,php,mysql,duplicates,Php,Mysql,Duplicates,我有一个存储多个列的数据库,我正在尝试创建高效的sql查询,该查询将根据选定的1列或更多列输出所有可能的重复项 所以,例如,如果我有一个数据库,它有名字和姓氏电话,我希望能够找到重复的名字和姓氏。我只想输出数据库中的数据两次以上,因此正确的输出如下: John, Smith, 123456789 John, Smith, 987654321 John, Smith, 098546786 Peter, Donut, 234569087 Peter, Donut, 854567896 我在寻找一些
John, Smith, 123456789
John, Smith, 987654321
John, Smith, 098546786
Peter, Donut, 234569087
Peter, Donut, 854567896
我在寻找一些东西,但我发现的唯一相似的东西是
SELECT * FROM table GROUP BY name,surname HAVING COUNT(*)>1
它只输出重复的一个实例,而不是所有实例。有什么建议可以让我不必从数据库中选择所有项目并通过PHP进行操作吗?需要这样做吗
SELECT *
FROM table t1
INNER JOIN
(
SELECT name, surname
FROM table
GROUP BY name,surname
HAVING COUNT(*)>1) t2
ON t1.name = t2.name AND t1.surname = t2.surname
如果手机在两个副本之间可以是相同的,只需在连接上使用主键即可
SELECT DISTINCT t.name, t.surname, t.phone FROM table t
LEFT OUTER JOIN table t2 ON t.name = t2.name AND t.surname = t2.surname AND t.phone <> t2.phone
WHERE t2.name IS NOT NULL
不确定T1.ID
SELECT ID, Name, LastName, Phone
FROM mytable T1, mytable T2
WHERE
T1.name = T2.name AND
T1.Phone = Phone AND
T1.LastName = T2.PLastName AND
T1.ID < T1.ID -- only use this line to leave 1 as unique