MYSQL从特定日期的表中删除重复值
我的mysql表有三个字段和附加的MYSQL从特定日期的表中删除重复值,mysql,sql,join,group-by,inner-join,Mysql,Sql,Join,Group By,Inner Join,我的mysql表有三个字段和附加的id列,它们是主键 host ipaddress date ---- --------- ----- server1.abc.com 10.1.1.1 2011-10-18 22:45:16 server1 10.1.1.1 2011-12-19 21:56:46 server2 11.1.1.1 2011-12-18
id
列,它们是主键
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
server2 11.1.1.1 2011-12-18 21:56:46
server2.abc.com 11.1.1.1 2011-12-17 21:56:46
Here,
host --> varchar
ipaddress --> varchar
date ---> datetime
我想在表中选择host
,该表中的ip
我只想在日期如“2011-12-19%”时检查主机的重复条目。
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
从上表中,我的结果应该满足条件日期,如“2011-12-19%”
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
我有下面的查询,它运行良好
select t1.*
from tablename t1
join (select ipaddress
from tablename
group by ipaddress
having count(*) >= 2
and count(case when CAST(date AS DATE) = '2017-12-19' then 1 end) > 0) t2
on t1.ipaddress = t2.ipaddress
现在,我需要帮助编写查询以删除日期与“2011-12-19%”不同的行。
因此,我的表应该有一个ipaddress
条目,它的日期类似于“2011-12-19%”
host ipaddress date
---- --------- -----
server1 10.1.1.1 2011-12-19 21:56:46
我已经删除了
date->2011-10-18 22:45:16的条目,这样在日期为'2011-12-19%'的表中就不会有重复的ipaddress
,
您可以使用删除和加入:
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
delete t1
from mytable t1
join (select ipaddress
from mytable
group by ipaddress
having count(*) >= 2
and count(case when CAST(date AS DATE) = '2011-12-19' then 1 end) > 0) t2
on t1.ipaddress = t2.ipaddress
where CAST(date AS DATE) != '2011-12-19'
使用此查询可以删除记录
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
从你的桌子上
问题,是否所有字段都存在?或者是否有其他列用作主键?有一个id
列是主键。更新的问题以及另一个问题,示例中的server1.abc.com 10.1.1 2011-10-18 22:45:16
如何满足date类似于'2011-12-19%'?
它满足date不类似于'2011-12-19%'
这里的日期实际上是server\u createdate
我想从表中删除重复的ip条目,其中date不类似于'2011-12-19%'
根据您的示例创建了一个示例sqlfiddle,结果如下,请检查并编辑您的代码,以反映出它的问题所在,welp,我猜您在这方面胜过了我xD