Mysql 从当天创建的查询中删除重复记录
我正在尝试创建一个SQL查询,它提取在同一天创建的所有唯一记录。例如:Mysql 从当天创建的查询中删除重复记录,mysql,duplicates,Mysql,Duplicates,我正在尝试创建一个SQL查询,它提取在同一天创建的所有唯一记录。例如: Table 1 Field 1 Field 2 Field 3 Bob bob@yahoo.com 2015-07-15 Rob rob@gmail.com 2015-07-16 Tiffany bob@yahoo.com 2015-07-15 结果应该是: Field 1 Field 2 Field 3 Bob
Table 1
Field 1 Field 2 Field 3
Bob bob@yahoo.com 2015-07-15
Rob rob@gmail.com 2015-07-16
Tiffany bob@yahoo.com 2015-07-15
结果应该是:
Field 1 Field 2 Field 3
Bob bob@yahoo.com 2015-07-15
Rob rob@gmail.com 2015-07-16
我尝试使用select distinct,但我需要结果包含所有字段。重复数据消除应位于电子邮件地址上,它可以提取第一个条目或最后一个条目。虽然不能保证工作正常,但以下内容可能会满足您的需要:
select t.*
from table1 t
group by field2, field3;
MySQL不保证字段来自同一行。事实上,文档很清楚,这些列来自不确定但匹配的行。实际上,这些值似乎来自同一行
如果需要更多控制,可以使用变量:
select t.*
from (select t.*,
(@rn := if(@e = email, @rn + 1,
if(@e := email, 1, 1)
)
) as seqnum
from table1 t cross join
(select @rn := 0, @e := '') param
order by email
) t
where seqnum = 1;
可能的重复不会根据OP要求的电子邮件地址字段2执行重复数据消除。当然,非常简单!谢谢,我会尝试这种方法!谢谢你的回答!对于我还没有提到的其他查询,有这样的详细程度真的很有帮助。
select *
from table1
group by Field3