sql >> Base de Datos >  >> RDS >> Mysql

CONJUNTO DE ACTUALIZACIÓN DE MYSQL en la misma columna pero con múltiples cláusulas WHERE

Algo como esto debería funcionar para usted:

UPDATE CustomerDetails_COPY
    SET Category_ID = CASE Category_ID
        WHEN 2 THEN 10 
        WHEN 3 THEN 9
        WHEN 4 THEN 12
        WHEN 5 THEN 11
    END
WHERE Category_ID IN (2,3,4,5)

Alternativamente, como sugirió Simon, puede hacer esto para evitar ingresar los valores dos veces:

UPDATE CustomerDetails_COPY
    SET Category_ID = CASE Category_ID
        WHEN 2 THEN 10 
        WHEN 3 THEN 9
        WHEN 4 THEN 12
        WHEN 5 THEN 11
        ELSE Category_ID
    END

Fuente:http://www.karlrixon.co.uk/escritura/actualizar-varias-filas-con-diferentes-valores-y-una-sola-consulta-sql/