如果没有结果,则返回指定的值

时间:2012-02-13 10:28:01

标签: mysql

我在这里有这个问题:

  $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分钟 如果 没有结果

2 个答案:

答案 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分钟()。