Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql qual é a sintaxe correta para esta instrução de atualização condicional


Deve ser escrito desta forma:
UPDATE tablename
SET fieldX = CASE WHEN fieldA = 'value1' THEN 'xxx' ELSE fieldX END,
    fieldY = CASE WHEN fieldA = 'value2' THEN 'yyy' ELSE fieldY END
WHERE fieldA IN ('value1', 'value2'); 

Observe que: Eu escrevi o ELSE parte desta forma, porque o padrão para o ELSE é NULL se a condição do CASE expressão não é válida, então isso a definirá para o valor original e não para o NULL valor.