我在这里有这个问题:
$query='insert into pageview (visitor,id_realestate,time)
select "q17872745t", 150, now()
from pageview a
where DATE_ADD(now(),INTERVAL -30 MINUTE) > (
select max(time) from pageview b where a.id_realestate=b.id_realestate AND a.visitor=b.visitor
) LIMIT 1';
我想要这个部分:
select max(time) from pageview b where a.id_realestate=b.id_realestate AND a.visitor=b.visitor
返回日期/时间,现在()减去40分钟 如果 没有结果
答案 0 :(得分:1)
将MAX(time)
包裹在IFNULL
子句中。
IFNULL(MAX(time), NOW() - INTERVAL 40 MINUTE)
答案 1 :(得分:0)
假设您的查询正确,只需将当前查询包装在另一个查询中,然后检查该值是否为null,如下所示:
选择IFNULL(选择最大值(时间) 来自pageview b 其中a.id_realestate = b.id_realestate AND a.visitor = b.visitor,DATE_SUB(now(),INTERVAL 30 MINUTES));
在上面的查询中,我使用max()作为子查询包装了您的查询,如果返回的值为null,则使用DATE_SUB返回一个值,从现在开始减去30分钟()。