比较数据库项以查找重复项

时间:2012-01-10 15:55:50

标签: php mysql

我还没有代码,因为我从未写过这样的查询。我公司的电子商务网站首次购物可享八折优惠。我们发现鬼鬼祟祟的人创造了多个帐户来利用。此时,在创建帐户时,它只会检查匹配的电子邮件。

老板想要的是每当他登录管理区域时,查询运行并显示具有相同名字和姓氏的任何帐户,以及其他项目。我能想到的唯一方法就是选择所有用户,然后遍历所有用户搜索匹配项。我认为这可以通过一个查询来完成。这是我想要的一个例子:

$res=$mysqli->query("SELECT * from users");
while($user = $res->fetch_array()){

    $res2=$mysqli->query("SELECT * FROM users WHERE firstname='".$user->firstname."' 
                                OR lastname='".$user->lastname."' .... ");
     while($user2 = $res2->fetch_array()){
        print $user->id . " matches " . $user2->id;
     }

}

这可以通过一个查询完成,如果是,请提供示例或链接。我感谢任何帮助

2 个答案:

答案 0 :(得分:7)

加入同一张桌子:

SELECT * FROM users u1 LEFT JOIN users u2 ON (u1.FirstName = u2.FirstName) 
    WHERE u1.Id != u2.Id;

答案 1 :(得分:0)

这样的事情可能会给你一个想法。

select field, GROUP_CONCAT(id SEPARATOR ',') from table group by field having count(field) > 2;