我还没有代码,因为我从未写过这样的查询。我公司的电子商务网站首次购物可享八折优惠。我们发现鬼鬼祟祟的人创造了多个帐户来利用。此时,在创建帐户时,它只会检查匹配的电子邮件。
老板想要的是每当他登录管理区域时,查询运行并显示具有相同名字和姓氏的任何帐户,以及其他项目。我能想到的唯一方法就是选择所有用户,然后遍历所有用户搜索匹配项。我认为这可以通过一个查询来完成。这是我想要的一个例子:
$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;
}
}
这可以通过一个查询完成,如果是,请提供示例或链接。我感谢任何帮助
答案 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;