2012-10-08 32 views
15

क्या डेटाबेस तालिका की पहली एक्स लाइनों को हटाने के लिए SQL कमांड है?डेटाबेस की पहली एक्स लाइनों को हटाएं

मेरे पास कुछ जानकारी वाली डेटाबेस तालिका है लेकिन कोई आईडी या ऑटो-वृद्धि मूल्य और कोई प्रोग्राम जो इस तालिका की पहली एक्स पंक्तियों को संसाधित करता है। बाद में इन एक्स लाइनों को हटा दिया जाना चाहिए। तो मानक क्वेरी है:

DELETE FROM table WHERE something = value; 

तो, वहाँ की तरह एक क्वेरी बनाने के लिए एक तरीका है:

DELETE FROM table WHERE rownumber <= X; 

मैं इस आदेश की कोशिश की है, लेकिन कुछ भी डेटाबेस के लिए होता .. क्या आपके पास कोई सुराग? अपने हटाने पर

उत्तर

33

उपयोग LIMIT:

DELETE FROM table WHERE condition LIMIT 10 

या, यदि आप हालत

DELETE FROM table LIMIT 10 

याद रखें कि जिस क्रम में पंक्तियों को हटा दिया जाएगा अपरिभाषित है नहीं करना चाहती है - यह पर निर्भर करता है आपके डीबीएमएस विन्यास और टेबल सूचकांक। आपको ORDER BY शामिल करना चाहिए ताकि हटाए गए क्रम में हटाया जा सके, उदा। पहले सबसे कम आईडी को हटाने के लिए ORDER BY id ASC

अधिक जानकारी के लिए MySQL documentation for DELETE देखें।

+1

जब आप ऐसा करते हैं तो बहुत सावधान रहें। यदि आप कोई इंडेक्स या ऐसा कुछ जोड़ते हैं तो चयन का क्रम बदल सकता है। एसक्यूएल सर्वर सबसे आसान चयन करता है, जहां कोई क्लॉज नहीं जोड़ते समय यह मिल सकता है। – Romo

+0

यह सही है। सामान्य 'ऑर्डर बाय' आवश्यकताएं लागू होती हैं। मैंने इसे प्रतिबिंबित करने के लिए संपादित किया है। – Polynomial

+0

आपके उत्तर के लिए धन्यवाद! मैंने कोशिश की और दुर्भाग्यवश यह केवल तभी काम करता है जब एक शर्त दी जाती है। तो अब मैं 'तालिका से हटाएं जहां एक_फील्ड> 0 LIMIT एक्स; ' यह अब तक काम करता है। धन्यवाद :-) – coroner