Да, для mysql есть специальная версия оператора вставки:
INSERT INTO table
VALUES (...)
ON DUPLICATE KEY UPDATE entryid = ?, etc -- this modifier will do the trick
Обратитесь к Ввод MySQL для этого синтаксиса для полного объяснения
Edit:
Это поведение работает при идентичности первичного ключа . Чтобы он работал на нескольких столбцах, вам нужен первичный ключ из нескольких столбцов, который вы бы определили для своей таблицы следующим образом:
create table mytable (
entryid int,
date int,
region char,
location enum ('a', 'b', 'c'),
views int,
primary key (entryid, date, region, location) -- list your key field like this
);