delete from yourtable t
where
instr(','||t.col||',', '123') > 0
Anda dapat mengganti '123' dengan parameter jika Anda mau.
Tetapi cara yang lebih baik adalah tidak menyimpan nilai yang dipisahkan koma, dan sebagai gantinya membuat tabel detail. Jika Anda perlu mencari nilai tertentu dalam daftar yang dipisahkan koma, Anda tidak dapat menggunakan indeks, di antara batasan lainnya.
[sunting]Salah memahami pertanyaan. Maksud Anda ini:
update YourTable t
set
t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
instr(','||t.col||',', '123') > 0
- Tambahkan ',' sebelum dan sesudah untuk mencocokkan item di awal atau akhir nilai.
- Ganti menggunakan nilai ',123,' (dalam koma) untuk mencegah pencocokan 1234 secara tidak sengaja.
- Gunakan substr dua kali untuk menghapus karakter pertama dan terakhir (tambahan koma)
- Gunakan instr di tempat untuk mencegah pembaruan catatan yang tidak perlu diperbarui (kinerja lebih baik).