उस तालिका से कैसे हटाएं जहां ID ID की सूची में है?


91

अगर मेरे पास ID (1,4,6,7) की एक सूची है और एक db तालिका है जहाँ मैं सभी रिकॉर्ड हटाना चाहता हूँ जहाँ ID इस सूची में है, ऐसा करने का तरीका क्या है?

जवाबों:


168

आपका प्रश्न इसके लिए SQL को लगभग मंत्र देता है:

DELETE FROM table WHERE id IN (1, 4, 6, 7)

@ यारजो: कोई अंतर शायद काफी नगण्य होगा, और मुझे नहीं लगता कि किसी भी कारण से एक-एक को हटाना किसी भी अधिक कुशल मार्ग होगा।
मत्ती विरक्कुनेन

यह सिर्फ वहीं है जहां प्रदर्शन से सुविधा प्रभावित हो सकती है। उदाहरण के लिए मुझे पहले से ही इसे एक-एक करके करने के लिए फ़ंक्शंस मिले। लेकिन अगर प्रदर्शन बढ़ने का मौका होता तो मैं कुछ अतिरिक्त कोड लिख सकता था, अन्यथा शायद यह इसके लायक नहीं होता।
जरजो

8
एक-एक करके लगभग निश्चित रूप से धीमे हो जाएंगे, निश्चित रूप से ओरेकल या पोस्टग्रेक्यूएल पर। कई छोटे ऑपरेशनों में एसक्यूएल संचालन को तोड़ना खराब प्रदर्शन का एक शानदार तरीका है।
डेविड एल्ड्रिज

1
मैंने पाया कि इन क्लॉज में 10,000 वस्तुओं में लगभग 200 सेकंड लगे, लेकिन 1000 में 3 सेकंड (या सामान्यीकृत तुलना में 30 सेकंड) लगे। आकार जरुरी है।
ओमुस्मा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.