MySql在具有时间条件的情况下对重复键更新进行插入

时间:2018-08-29 14:07:47

标签: php mysql insert on-duplicate-key

我有一个表格,该表格记录了表单提交后的IP地址(索引)和时间戳,这些表单不能在一分钟内重新提交。我已经有了用于INSERT ON DUPLICATE KEY UPDATE的逻辑,如果表中没有IP,则插入行;如果IP已经存在,则更新行,并且它将继续更新。我需要的是:

  1. 如果没有IP地址,请插入行
  2. 如果使用IP则更新行,但是now()<时间戳
  3. 如果now()>时间戳插入新行

这是到目前为止我得到的:

$q = 'INSERT INTO btTable (ip, timestamp) 
        VALUES(INET_ATON (?),?) 
        ON DUPLICATE KEY UPDATE timestamp = ?';

$v = [$this->host_ip, date('YmdHi'), date('YmdHi')];
$db->executeQuery($q, $v);

谢谢。

0 个答案:

没有答案