delete from yourtable t
where
instr(','||t.col||',', '123') > 0
Вы можете заменить «123» параметром, если хотите.
Но лучшим способом было бы не хранить значения, разделенные запятыми, а вместо этого создать подробную таблицу. Если вам нужно найти определенное значение в списке, разделенном запятыми, вы не сможете использовать индексы, среди прочих ограничений.
[править]
Неправильно понял вопрос. Вы имели в виду это:
update YourTable t
set
t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
instr(','||t.col||',', '123') > 0
- Добавьте ',' до и после, чтобы сопоставить элементы в начале или конце значения.
- Замените, используя значение ', 123,' (внутри запятой), чтобы предотвратить случайное совпадение с 1234.
- Используйте substr дважды, чтобы удалить первый и последний символ (добавленные запятые)
- Используйте instr в месте, чтобы предотвратить обновление записей, которые не нужно обновлять (повышенная производительность).