MYSQL重复条目

时间:2017-03-22 23:44:32

标签: php mysql

我想在mysql表中找到重复的条目。我想比较不同的领域。这是我桌子的结构:

ID    FirstName    LastName    Street    ZIP      City        IpAddress
 1      Jack        Smith       2nd     12345    Sample1     12.21.24.212
 2      Paul        Miller      3rd     45685    Sample2     78.54.85.654
 3      Jenny       Smith       3rd     77273    Sample3     84.91.67.311
 4      Frank       Jackson     1st     27819    Sample1     78.54.85.654
 5      Jack        Smith       3rd     72891    Sample2     94.79.99.465

现在我想分别比较街道和ip列,然后我想找到名字和姓氏的组合。我的表中实际上还有一些我想要搜索的列,但我认为上面的例子可以让你了解我正在计划的内容。

我需要可能重复的条目的ID号。

在上面的例子中,当我比较名字和姓氏的组合时,输出应该是id号1和5。

如果我比较街道名称,输出应该是id号码2,3和5。

ip地址的输出应该是id号2和4。

有没有人对如何做到这一点有一些想法?比较这些不同表格的最佳方法是什么?我不介意我是否需要进行多次查询。

1 个答案:

答案 0 :(得分:1)

使用GROUP_CONCAT()获取组内的所有ID,并GROUP BY指定您要查找的重复列的列。并且您可以使用COUNT(*),因此您只返回具有重复项的那些。

街道:

SELECT street, GROUP_CONCAT(id)
FROM yourTable
GROUP BY street
HAVING COUNT(*) > 1

姓名:

SELECT firstname, lastname, GROUP_CONCAT(id)
FROM yourTable
GROUP BY firstname, lastname
HAVING COUNT(*) > 1