Tengo esta tabla en mi base de datos MySQL, 'usuarios'. Tiene los campos 'id' y 'value'.Actualizando varias filas con valores diferentes
Ahora, quiero actualizar un montón de filas en esta tabla con una sola consulta SQL , pero muchas filas deben tener un valor diferente. Actualmente, estoy usando esto:
UPDATE users
SET value = CASE id
WHEN 1 THEN 53
WHEN 2 THEN 65
WHEN 3 THEN 47
WHEN 4 THEN 53
WHEN 5 THEN 47
END
WHERE id IN (1,2,3,4,5)
Esto funciona. Pero creo que podría hacer algo de optimización ya que solo hay unos 3 o 4 valores diferentes que estoy asignando a las filas. Como puede ver, ahora estos son 47, 53 y 65. ¿Hay alguna manera de actualizar todas las filas que obtienen el mismo valor simultáneamente en la misma consulta? O, ¿hay otra forma en que pueda optimizar esto?
Se puede almacenar la asignación en una mesa separada y unirse a eso. – Pointy
@Pointy: ¿por qué no poner esto como una respuesta? – Benoit
@Benoit porque aunque conozco SQL, no conozco MySQL y, por lo tanto, no necesariamente podría construir un ejemplo correcto. – Pointy