如果值不超过3个月,我如何从mysql最新值中进行选择

如果值不超过3个月,我如何从mysql最新值中进行选择,mysql,Mysql,我正在努力寻找客户,他们在3个月内登录了我的网站,发送提醒 我的问题是,如果执行间隔查询,客户机总是会有一个结果,因为查询选择的日期早于3个月,即使客户机已在稍后阶段登录 所以我只想看到一个结果,如果一个客户端在三个月前登录。目前,我每次都会收到三个月的结果,即使客户最近登录。如果他最近登录,客户端不应该出现在结果中 SELECT Client, IP, Date from iplog WHERE Date = (select max(Date)from iplog group by Clie

我正在努力寻找客户,他们在3个月内登录了我的网站,发送提醒

我的问题是,如果执行间隔查询,客户机总是会有一个结果,因为查询选择的日期早于3个月,即使客户机已在稍后阶段登录

所以我只想看到一个结果,如果一个客户端在三个月前登录。目前,我每次都会收到三个月的结果,即使客户最近登录。如果他最近登录,客户端不应该出现在结果中

SELECT Client, IP, Date from iplog
WHERE  Date = (select max(Date)from iplog group by Client) AND Date < DATE_SUB(now(), INTERVAL 3 MONTH)

我将通过EXISTS条款处理此问题:


这里的逻辑是,对于每个客户机记录,我们检查客户机是否没有反映最近3个月内最近登录的任何其他记录。如果是这样,那么将返回该客户机的所有记录。

。等待时间流逝
SELECT Client, IP, Date
FROM iplog ip1
WHERE NOT EXISTS (SELECT 1 FROM iplog ip2
                  WHERE ip1.Client = ip2.Client AND
                        ip2.Date >= DATE_SUB(NOW(), INTERVAL 3 MONTH));