Actualizaciones múltiples en MySQL

Sé que se pueden insertar varias filas a la vez, ¿hay alguna forma de actualizar varias filas a la vez (es decir, en una sola consulta) en MySQL?

Editar: Por ejemplo tengo lo siguiente

Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8

Quiero combinar todas las siguientes actualizaciones en una sola consulta

UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
UPDATE table1, table2 SET table1.col1='value', table2.col1='value' WHERE table1.col3='567' AND table2.col6='567'

Esto debería funcionar para ti.

Hay una referencia en el manual de MySQL para las tablas múltiples.

Comentarios (0)

También puede interesarle utilizar uniones en las actualizaciones, lo que también es posible.

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.

Edición: Si los valores que está actualizando no provienen de algún otro lugar de la base de datos, tendrá que realizar varias consultas de actualización.

Comentarios (0)

Lo siguiente actualizará todas las filas de una tabla

Update Table Set
Column1 = 'New Value'

La siguiente actualizará todas las filas en las que el valor de la Columna2 sea superior a 5

Update Table Set
Column1 = 'New Value'
Where
Column2 > 5

Hay todo Unkwntech's ejemplo de actualización de más de una tabla

UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'
Comentarios (0)