Я хочу сделать что-то вроде этого
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value')
ON DUPLICATE KEY UPDATE
t.c = 'value';
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = 'value2';
t.a и t.b - это ключи. Все это работает отлично, но я получаю ошибку во второй вставке. С phpMyAdmin такой запрос отлично работает, но я предполагаю, что он запускает запросы независимо, поскольку он выводит результаты из этого запроса в виде комментариев?
Что-то вроде этого тоже будет хорошо, но мне нужно будет иметь разные значения для каждого элемента. Я предпочитаю это, но я не уверен, как я могу изменить значение для обновления для каждого значения.
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = ???
Проблема в вопросительных знаках, что я должен там положить, чтобы каждая вставка/обновление имела правильное значение? Очевидно, если я поместил туда значение, все поля получат это значение.
Если есть другой способ выполнить "обновление, если существует, иначе вставьте" запрос на несколько полей с двумя ключами, я тоже задумаюсь над другими идеями. Думаю, я мог бы выполнять каждый запрос отдельно (например, phpMyAdmin?), Но это будет много запросов, поэтому я действительно хочу этого избежать.