Я пытаюсь разработать простую систему слежения. То, что я пытаюсь сделать, это либо вставить новую запись, либо обновить запись, если она соответствует той же кампании. Я хочу вставить новую запись, если пользователь запускается в новой кампании. Вот мой текущий запрос, который работает нормально.Обновить запись только в том случае, если соответствует другой столбец?
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] запускает кампанию1, тогда она будет ВСТАВИТЬ запись. Если он снова пробует кампанию 1, он просто обновляет метку времени. Теперь, когда [email protected] запускает кампанию2, он вставляет совершенно новую запись.
Так что в основном я пытаюсь получить его в INSERT только тогда, когда пользователь запускает новую кампанию. В противном случае я хочу, чтобы он обновил метку времени.
Любые идеи или советы Я бы очень признателен!
'на дубликате key' работает только на уникальных ключах - вы бы добавить уникальный ключ на' campaign' поле для этого Работа. –
, но mysql проверяет оба ключа или только первичный? – john
Он проверяет все уникальные ключи в таблице: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html –