delete from yourtable t
where
instr(','||t.col||',', '123') > 0
Puede reemplazar '123' con un parámetro si lo desea.
Pero una mejor manera sería no almacenar valores separados por comas y crear una tabla de detalles en su lugar. Si necesita buscar un valor específico dentro de una lista separada por comas, no puede hacer uso de índices, entre otras limitaciones.
[editar] Entendí mal la pregunta. Quisiste decir esto:
update YourTable t
set
t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
instr(','||t.col||',', '123') > 0
- Agregue ',' antes y después para hacer coincidir los elementos al principio o al final del valor.
- Reemplace usando el valor ',123,' (dentro de comas) para evitar coincidencias accidentales con 1234 también.
- Utilice substr dos veces para eliminar el primer y último carácter (las comas añadidas)
- Utilice instr en el lugar para evitar la actualización de registros que no necesitan actualizarse (mejor rendimiento).