Como você está usando
LIKE '%abc%'
, a instrução de atualização exigirá uma verificação completa da tabela. Nesse caso, combinar as duas instruções melhorará o desempenho geral. No entanto, em sua sugestão, todas as linhas são atualizadas e a maioria delas é atualizada sem ser alterada (o valor da coluna1 é substituído pelo valor da coluna1). Você quer ter certeza de manter o
WHERE
cláusula para que apenas as linhas que realmente precisam ser alteradas sejam alteradas. Essa gravação desnecessária no disco é mais lenta do que verificar se a linha corresponde aos critérios. Fazem isto:
UPDATE table1
SET column1 =
CASE
WHEN column1 LIKE '%abc%' THEN REPLACE(column1, 'abc', 'abc1')
WHEN column1 LIKE '%def%' THEN REPLACE(column1, 'def', 'def1')
END
WHERE column1 LIKE '%abc%' OR column1 LIKE '%def%';