delete from yourtable t
where
instr(','||t.col||',', '123') > 0
Je kunt '123' vervangen door een parameter als je wilt.
Maar een betere manier zou zijn om door komma's gescheiden waarden niet op te slaan en in plaats daarvan een detailtabel te maken. Als u binnen een door komma's gescheiden lijst naar een specifieke waarde moet zoeken, kunt u onder andere geen gebruik maken van indices.
[edit] Ik heb de vraag verkeerd begrepen. Je bedoelde dit:
update YourTable t
set
t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
instr(','||t.col||',', '123') > 0
- Voeg ',' voor en na toe om items aan het begin of einde van de waarde te matchen.
- Vervang de waarde ',123' (binnen komma's) om te voorkomen dat ook 1234 per ongeluk overeenkomt.
- Gebruik substr twee keer om het eerste en laatste teken (de toegevoegde komma's) te verwijderen
- Gebruik instr in de waar om te voorkomen dat records worden bijgewerkt die niet hoeven te worden bijgewerkt (betere prestaties).