MySQL - Como fazer múltiplos updates com uma única query
Vamos supor que temos uma tabela chamada parameters com os campos param, value, type e description:
+-------------+------------------------+------+-------------------------------------+
| param | value | type | description |
+-------------+------------------------+------+-------------------------------------+
| EXPERIMENTO | 1504037801122 | int | ID do experimento atual |
| CONFIG | {"idPublication":"10"} | str | Configurações de treinamento atuais |
+-------------+------------------------+------+-------------------------------------+
Supondo que precisamos atualizar apenas o campo value das duas linhas acima com updates, como seria o processo "sem pensar muito"?
Bom, seria simplesmente utilizar duas queries UPDATE, correto?
UPDATE parameters SET value = '174305845' WHERE param = 'EXPERIMENTO'
UPDATE parameters SET value = '{"idPublication":"15"}' WHERE param = 'CONFIG'
Mas esta metodologia é bem feia, flerta com o amadorismo.
Podemos, de outra forma, utilizar uma única query para fazer o mesmo serviço:
UPDATE parameters SET value = CASE param WHEN 'EXPERIMENTO' THEN '
174305845
'
WHEN 'CONFIG' THEN '
{"idPublication":"15"}
'
END
WHERE
param IN ( 'EXPERIMENTO' , 'CONFIG' )
Espero que tenha ajudado
Abraços
Comentários
Postar um comentário