php - 比较数据库项目以查找重复项

标签 php mysql

我还没有代码,因为我从来没有写过这样的查询。我公司的电子商务网站提供首次购买 20% 的折扣。我们发现偷偷摸摸的人会创建多个帐户来利用。此时,在创建帐户时,它只会检查匹配的电子邮件。

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

$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;
     }

}

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

最佳答案

同 table 加入:

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

关于php - 比较数据库项目以查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806226/

相关文章:

mysql - 我可以在查询的许多位置使用列别名吗?

java - 工作平台标签系统

javascript - 一个页面中有多个,需要传递数据

php - 在php中获取脚本退出状态代码

PHP - 从基于值名称组合类似值的 php 数组构建多级 HTML 菜单

php - 如何将mysql计数输出转换为php变量

php - 如何将xml文件插入到mysql表中

php - 计算多维数组php的键

php - 更新本地存储中的时间

mysql - PMA 数据库...在 phpMyAdmin 升级中不正常