Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP在mysql表中查找重复项?_Php_Mysql - Fatal编程技术网

如何使用PHP在mysql表中查找重复项?

如何使用PHP在mysql表中查找重复项?,php,mysql,Php,Mysql,我有一张有客户信息的桌子。通常,PHP会在插入新行之前检查重复项。然而,我不得不手动转储很多旧的行,现在它们都在我的表中,我需要检查重复的行 示例行: 身份证、姓名、电子邮件、电话、传真 我想做一个mysql查询,将显示所有的ID与匹配的电子邮件。我可以在以后修改电话、传真等的查询 我有一种感觉,我将使用DISTINCT,但我不太确定它是如何完成的。您可以通过电子邮件分组,使用HAVING COUNT(*)>1查找所有重复的电子邮件地址,然后将生成的重复电子邮件与您的表连接以获取ID: SELE

我有一张有客户信息的桌子。通常,PHP会在插入新行之前检查重复项。然而,我不得不手动转储很多旧的行,现在它们都在我的表中,我需要检查重复的行

示例行:

身份证、姓名、电子邮件、电话、传真

我想做一个mysql查询,将显示所有的ID与匹配的电子邮件。我可以在以后修改电话、传真等的查询


我有一种感觉,我将使用
DISTINCT
,但我不太确定它是如何完成的。

您可以
通过电子邮件分组
,使用
HAVING COUNT(*)>1
查找所有重复的电子邮件地址,然后将生成的重复电子邮件与您的表连接以获取ID:

SELECT id FROM my_table NATURAL JOIN (
  SELECT email FROM my_table GROUP BY email HAVING COUNT(*) > 1
) t

看起来不错,谢谢。然而,当我执行
while($row=mysql\u fetch\u array($result))
时,我会得到“资源Id#2”。。。。如何正确设置?请显示
$result
的定义;此外,请注意,古<代码> MySqL**<代码>函数不再被维护,社区已经开始:您应该考虑使用OR或。如果你不能决定,将帮助你做出选择。如果你想了解更多,谢谢你的帮助!非常感谢。