Я хочу сделать что-то подобное
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?), Но это будет много запросов, поэтому я действительно хочу избежать этого.