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を2回使用して、最初と最後の文字(追加されたコンマ)を削除します
- whereでinstrを使用して、更新する必要のないレコードが更新されないようにします(パフォーマンスが向上します)。