Я подозреваю, что вы ищите синтаксис insert into on duplicate key update
Из руководства:
12.2.5.3. INSERT ... ON DUPLICATE KEY UPDATE Синтаксис
Если вы укажете ON DUPLICATE KEY UPDATE, и будет вставлена строка, которая вызовет
дублирующее значение в уникальном индексе или первичном ключе, ОБНОВЛЕНИЕ старого
Строка выполнена.
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Ваш запрос должен быть похож на следующий пример:
INSERT INTO tableA (blog_id,c,c_date) VALUES (1,1,now()) ON DUPLICATE KEY UPDATE `c` = `c`+1, `c_date` = NOW()
Вам нужно иметь ключ UNIQUE
или PRIMARY KEY
, чтобы это работало.
ALTER TABLE `table` ADD PRIMARY KEY ( `id` )
На основе вашего примера таблицы вы можете добавить первичный ключ в столбец id
или добавить уникальный составной индекс для полей (c_date, blog_id)
ALTER TABLE `table` ADD UNIQUE (
blog_id ,
c_date
);
и используйте это:
INSERT INTO tableA (blog_id, c, c_date)
VALUES (1, 1, NOW())
ON DUPLICATE KEY UPDATE
c = c + 1 --- update only `c`, not any part of the unique key