Вы можете использовать выражение case
:
update table set col = case
when col like '%value1%' then replace(col, 'value1', '')
when col like '%value2%' then replace(col, 'value2', '')
when col like '%value3%' then replace(col, 'value3', '')
else col
end
Вы также можете сформулировать этот запрос следующим образом - это почти эквивалентно приведенному выше запросу, исключается, если col
содержит, например, 'value1'
и 'value2'
(в этом случае оба будут заменены, а первый запрос заменит 'col1'
):
update table set col =
replace(
replace(
replace(col, 'value1', ''),
'value2', ''
),
'value3', ''
)
Кроме того, вы можете захотеть filter набор данных перед обновлением, особенно если в вашей таблице много строк. Вы можете сделать это, добавив к запросу предложение where
:
where col like '%value1%' or col like '%value2%' or col like '%value3%'