douhoushou8385 2018-08-29 14:07
浏览 64

MySql INSERT ON DUPLICATE KEY UPDATE with time condition

I have a table which logs IP addresses (index) and time stamp after form submission which cannot be resubmitted within, say, a minute. I've got the logic working for INSERT ON DUPLICATE KEY UPDATE which inserts a row if there's no IP in the table or updates the row if the IP is already there and it will keep updating it. What I need is it should:

  1. Insert row if no IP
  2. Update row if IP but now() < timestamp
  3. Insert new row if now() > timestamp

This is what I've got so far:

$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);

Thank you.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化
    • ¥15 Tableau online 嵌入ppt失败
    • ¥100 支付宝网页转账系统不识别账号
    • ¥15 基于单片机的靶位控制系统
    • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度