delete from yourtable t
where
instr(','||t.col||',', '123') > 0
Pokud chcete, můžete nahradit '123' parametrem.
Ale lepší způsob by bylo neukládat hodnoty oddělené čárkami a místo toho vytvořit tabulku podrobností. Pokud potřebujete hledat konkrétní hodnotu v seznamu odděleném čárkami, nemůžete kromě jiných omezení používat indexy.
[editovat] Špatně jsem pochopil otázku. Měli jste na mysli toto:
update YourTable t
set
t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
instr(','||t.col||',', '123') > 0
- Přidejte ',' před a za, aby odpovídaly položkám na začátku nebo na konci hodnoty.
- Nahraďte pomocí hodnoty ',123' (mezi čárkami), abyste zabránili náhodné shodě 1234.
- Dvakrát použijte substr k odstranění prvního a posledního znaku (přidané čárky)
- Použijte příkaz instr v části where, abyste zabránili aktualizaci záznamů, které není třeba aktualizovat (lepší výkon).