यह सही है और डिज़ाइन के अनुसार:यदि आप सॉर्टिंग के लिए नहीं कहते हैं, तो सर्वर सॉर्टिंग से परेशान नहीं होता है (सॉर्टिंग एक महंगा ऑपरेशन हो सकता है), और यह पंक्तियों को उसी क्रम में वापस कर देगा जैसा वह फिट देखता है। अनुरोधित आदेश के बिना, जिस तरह से रिकॉर्ड का आदेश दिया जाता है, वह एक क्वेरी से दूसरी क्वेरी में भी भिन्न हो सकता है (हालाँकि इसकी बहुत अधिक संभावना नहीं है)।
आदेश निश्चित रूप से यादृच्छिक नहीं है - क्वेरी से पंक्तियों के बाहर आने का यह तरीका है, और जैसा कि आप देखते हैं, यहां तक कि मामूली संशोधन भी इस अन-ऑर्डर को महत्वपूर्ण रूप से बदल सकते हैं। यह "अपरिभाषित" आदेश कार्यान्वयन पर निर्भर है, अप्रत्याशित है और इस पर भरोसा नहीं किया जाना चाहिए।
यदि आप चाहते हैं कि तत्वों का आदेश दिया जाए, तो ORDER BY
. का उपयोग करें खंड (यही इसका उद्देश्य है) - उदा.
SELECT name FROM difficulties ORDER BY name ASC;
वह हमेशा आरोही क्रम में नाम से क्रमबद्ध परिणाम लौटाएगा। या, यदि आप उन्हें प्राथमिक कुंजी द्वारा आदेशित करना चाहते हैं, तो सबसे ऊपर, उपयोग करें:
SELECT name FROM difficulties ORDER BY id DESC;
आप फ़ंक्शन द्वारा क्रमबद्ध भी कर सकते हैं - यदि आप वास्तव में चाहते हैं यादृच्छिक क्रम, यह करें (चेतावनी:लार्जिश टेबल के साथ भयानक प्रदर्शन):
SELECT name FROM difficulties ORDER BY RAND();
अधिक जानकारी के लिए यह ट्यूटोरियल देखें और दस्तावेज ।