我在MYSQL DB上使用以下架构。
id bigint(20)
url varchar(500)
timestamp datetime
server varchar(500)
我需要编写一个查询来查找在一小时或更长时间内由两台不同服务器切换的所有网址。
因此,例如,如果url1在11:00由server1服务并且在12:00由server2服务则应该在结果中,但是如果url2由服务器1在11:05服务并且服务器2服务于11: 30那么它不应该在结果中。
请在此处找到示例小提琴Fiddle。在这种情况下,输出应为www.url2.com
。
答案 0 :(得分:2)
只需在timestampdiff
中使用where exists...subquery
功能:
select distinct url
from sample s1
where exists (
select url
from sample s2
where
s2.url=s1.url
and timestampdiff(HOUR, s2.timestamp, s1.timestamp)>=1
)