Да, это возможно - можно использовать, ВСТАВЛЯЮТ... НА ДУБЛИРУЮЩЕМСЯ КЛЮЧЕВОМ ОБНОВЛЕНИИ.
Используя Ваш пример:
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
UPDATE tableName SET col1='000' WHERE id='3' OR id='5'
Это должно достигнуть что поиск you'r. Просто добавьте больше идентификатора. Я протестировал его.
Следующее обновит все строки в одной таблице
Update Table Set
Column1 = 'New Value'
, следующий обновит все строки, где значение Column2 - больше чем 5
Update Table Set
Column1 = 'New Value'
Where
Column2 > 5
существует весь пример Unkwntech обновления больше чем одной таблицы
UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
Можно также интересоваться использованием соединений на обновлениях, который возможен также.
Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.
Редактирование: Если значения, которые Вы обновляете, не прибудут из где-то в другом месте в базе данных, необходимо будет выпустить несколько запросов на обновление.
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'
Это должно работать на Вас.
существует ссылка в руководство MySQL для нескольких таблиц.
Так как у Вас есть динамические значения, необходимо использовать ЕСЛИ или СЛУЧАЙ для столбцов, которые будут обновлены. Это становится довольно ужасным, но это должно работать.
Используя Ваш пример, Вы могли сделать это как:
UPDATE table SET Col1 = CASE id WHEN 1 THEN 1 WHEN 2 THEN 2 WHEN 4 THEN 10 ELSE Col1 END, Col2 = CASE id WHEN 3 THEN 3 WHEN 4 THEN 12 ELSE Col2 END WHERE id IN (1, 2, 3, 4);