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 в where, за да предотвратите актуализирането на записи, които не трябва да се актуализират (по-добра производителност).