好吧,所以我理解如何根据一个搜索参数执行mysql查询以返回结果。但我有一个包含用户名和数据的表。数据应该对每个用户名都是唯一的,但我想返回数据可能在多个用户名上重叠的任何实例。一个例子是
Username | Data Field
----------------------------------------------
Test | Abcd1234
Test2 | efgh5678
Test3 | Abcd1234
Test4 | efgh5678
我希望我的php脚本返回在数据字段中找到重复条目的所有实例。请注意,此表中的数据字段和用户名字段都不是唯一的。每当用户完成一个动作时,表就会被填充,因此每个用户名应该有很多条目,但每次都应该有相同的数据字段。我只想检查两个不同的用户名何时具有相同的数据字段。有谁知道如何在php或mysql select语句中完成这项工作?它可能需要多个查询,这没关系。我已尝试搜索如何根据用户名查找重复的电子邮件,但我发现的结果更多的是首先防止重复注册。
答案 0 :(得分:1)
基本上,您希望计算每个数据字段的唯一用户数。这是一个聚合查询:
select data, count(distinct username) as numusers
from table t
group by data;
您应该能够使用此查询获取唯一的用户名:
select data, count(distinct username) as numusers,
group_concat(distinct username) as users
from table t
group by data
having count(distinct username) > 1;
这将创建一个以逗号分隔的用户列表"使用"相同的数据。