我正在嘗試開發一個簡單的跟蹤系統。我想要做的是插入新記錄或更新記錄,如果它匹配相同的廣告系列。如果用戶在新廣告系列上觸發,我想插入一條新記錄。這是我目前的查詢工作正常。僅當另一列匹配時才更新記錄?
INSERT INTO `tracking` (`email`,`ip`,`referrer`,`campaign`,`timestamp`)
VALUES ('$campaign[0]','$ip','$referrer','$campaign[1]','$timestamp')
ON DUPLICATE KEY UPDATE `last_timestamp` = '$timestamp'
我的目標是如果[email protected]觸發campaign1,那麼它會插入記錄。如果他再次嘗試廣告系列1,它只會更新時間戳。現在,當[email protected]觸發campaign2時,它會插入一個全新的記錄。
所以基本上我試圖只在用戶觸發一個新的廣告系列時纔將其加入INSERT。否則,我希望它更新時間戳。
任何想法或建議我真的很感激它!
'只能在唯一的密鑰 - 你必須在'campaign'場該附加唯一密鑰工作。 – 2012-03-27 14:16:42
但是mysql檢查兩個鍵或只是主? – john 2012-03-27 14:17:29
它檢查表中的所有唯一鍵:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – 2012-03-27 14:19:17