插入条件

时间:2012-02-12 17:45:49

标签: mysql

我有这张表pageview

 id    |   visitor   |   id_realestate  |   time
 -----------------------------------------------

我想要插入记录,如果只有最后time为30分钟,至少对于已被特定id_realestate

检查的特定visitor而言

更新

使其更清晰。如果我准备将这些数据插入表格

visitor:"axax"
id_realestate:120
time:NOW()

如果只有具有这些值visitor:"axax"&的最后一条记录,则应插入这些值。 id_realestate:120超过30分钟(通过检查字段time获取我提到的两个值的最后一个记录,如果差异大于30分钟,则将其与NOW()进行比较。如果是那么应该插入数据)

更新

我现在拥有这些数据。正如您所见,时间字段包含昨天的值,因此应插入任何新数据:

enter image description here

我按照 anubhava 的建议使用此查询,但没有任何反应(没有添加新记录/没有错误)

$query='insert into pageview
select "q17872745t", 150, now() 
from pageview a
where id_realestate=150 and DATE_ADD(now(),INTERVAL -30 MINUTE) > (
  select max(time) from pageview b where a.id_realestate=b.id_realestate AND   a.visitor=b.visitor
)';

更新

我将查询修改为以下内容并且正在运行 如果最新时间为30薄薄,则与每个time 进行比较它插入一条记录(意味着它将记录加倍)。所以,如果我有两个具有相同visitorid_realestate的记录,如果两个记录中的time都是30分钟,那么它将与这两个记录进行比较,然后它会插入2个相同的记录,而它应插入一个记录。

      $query='insert into pageview (visitor,id_realestate,time)
      select "q17872745t", 150, now() 
         from pageview a
         where id_realestate=150 and 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,现在它正常工作。这是最后的查询:

      $query='insert into pageview (visitor,id_realestate,time)
      select "q17872745t", 150, now() 
         from pageview a
         where id_realestate=150 and 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';

1 个答案:

答案 0 :(得分:3)

不是一个非常明确的问题,但你可以使用这样的查询:(未经测试

insert into pageview
  select 15, 'A VISITOR', 10, now() 
  from pageview a
  where id_realestate=10 and DATE_ADD(now(),INTERVAL -30 MINUTE) > (
      select max(news_release) from pageview b where a.id_realestate=b.id_realestate
  );