एक एकल एसक्यूएल क्वेरी के साथ रिकॉर्ड्स को पुन: व्यवस्थित करना
खाद्य वस्तुओं की एक तालिका में उनकी उपस्थिति को क्रमबद्ध करने के लिए "स्थिति" फ़ील्ड के साथ, एक एकल SQL क्वेरी एकल रिकॉर्ड में परिवर्तन के आधार पर एकाधिक रिकॉर्ड को अपडेट कर सकती है। यह किसी विशिष्ट सूची में आइटमों को पुन: व्यवस्थित करने के लिए विशेष रूप से उपयोगी है।
मान लीजिए हमारे पास एक तालिका है यह:
id | listID | name | position |
---|---|---|---|
1 | 1 | पनीर | 0 |
2 | 1 | चिप्स | 1 |
3 | 1 | बेकन | 2 |
4 | 1 | सेब | 3 |
5 | 1 | नाशपाती | 4 |
6 | 1 | पाई | 5 |
को चिप्स से पहले नाशपाती को स्थानांतरित करें, हम उनके बीच सभी वस्तुओं की स्थिति को 1 से बढ़ा सकते हैं।
हालांकि, अधिकांश समाधानों में कई प्रश्न शामिल होते हैं, जो अक्षम हो सकते हैं। इसके बजाय, रिकॉर्ड्स को पुन: व्यवस्थित करने के लिए एक एकल क्वेरी का उपयोग किया जा सकता है:
UPDATE my_table SET position = position CASE WHEN name = 'pears' THEN -3 ELSE 0 END WHERE listID = 1 AND position BETWEEN 1 AND 4;
यह सूत्र सुनिश्चित करता है कि नाशपाती स्थिति 1 पर चली जाए, और नाशपाती और चिप्स के बीच की सभी वस्तुओं को तदनुसार बढ़ाया जाए।
किसी भी वस्तु को फिर से व्यवस्थित करने के लिए, बस 'नाशपाती' को स्थानांतरित किए जाने वाले आइटम के नाम से बदलें, और आवश्यकतानुसार अंतर को समायोजित करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3