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 का मिलान न हो जाए।
- पहले और अंतिम वर्ण (जोड़े गए अल्पविराम) को हटाने के लिए दो बार सबस्ट्र का उपयोग करें
- उन रिकॉर्ड्स को अपडेट करने से रोकने के लिए जहां इंस्ट्र का उपयोग करें जिन्हें अपडेट करने की आवश्यकता नहीं है (बेहतर प्रदर्शन)।