Вы можете использовать функцию REPLACE дважды:
update accounts
set owner_ids = REPLACE(REPLACE(owner_ids,
',rt458' ),',hf678');
REPLACE возвращает char при каждом замене search_string на replace_string.
Или вы можете использовать REGEXP_REPLACE , чтобы заменить / удалить эти значения регулярным выражением:
update accounts
set owner_ids = REGEXP_REPLACE(owner_ids,
'(\,rt458||\,hf678)', '');
REGEXP_REPLACE расширяет функциональность функции REPLACE, позволяя вам искать в строке шаблон регулярного выражения.
Для поддержки случая, когда rt458 является первой записью в списке CSV (как прокомментировал @TimBiegeleisen), вы должны разрешить использовать запятую как:
update accounts
set owner_ids = REGEXP_REPLACE(owner_ids,
'(\,{0,1}rt458||\,{0,1}hf678)', '');
Используя замену, вам нужно будет удвоить количество звонков:
update accounts
set owner_ids = REPLACE(REPLACE(REPLACE(REPLACE(owner_ids,
',rt458' ),',hf678', 'rt458,', 'hf678,');
Также вы можете увидеть другие решения для удаления значения из строки через запятую