Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL क्वेरी के परिणाम मेरे अपेक्षित क्रम में वापस क्यों नहीं आते हैं?

कथन में 'ऑर्डर बाय' क्लॉज का उपयोग करके क्वेरी के क्रम को बाध्य किया जा सकता है। एक SQL डेटाबेस वास्तव में यह नहीं समझता है कि आप किस क्रम में चीजें डालते हैं, या किसी दिए गए क्रम में डेटा संग्रहीत करते हैं। इसका मतलब है कि आपको SQL को यह बताना होगा कि आप किस क्रम में आइटम चाहते हैं। उदाहरण के लिए:

Select * from Table
  order by column1 desc

इसके बारे में सोचें जैसे कि कुछ सामान अपने दोस्त को देने के लिए - उसके पास बाद में आपके लिए सब कुछ होगा, लेकिन वह इसे इस बीच कहीं स्टोर कर लेती है। जब आप किसी और चीज़ के लिए जगह बनाना नहीं चाह रहे हों, तो वह उसे इधर-उधर कर सकती है, या उसे उसी क्रम में वापस सौंप सकती है, जिस क्रम में आपने उसे दिया था, लेकिन आपने उसे इसे क्रम में रखने के लिए नहीं कहा था, इसलिए वह ऐसा नहीं करती है। .

डेटाबेस को पृष्ठभूमि में चीजों को इधर-उधर करने में सक्षम होना चाहिए, इसलिए जिस तरह से वे बनाए जाते हैं वह आंतरिक रूप से किसी भी ऑर्डर के बारे में नहीं जानते हैं - जब आप इसे डेटाबेस को देते हैं, तो आपको ऑर्डर जानने की आवश्यकता होती है, ताकि आप इसे वापस रख सकें। आदेश आप बाद में चाहते हैं। ऑर्डर क्लॉज SQL को डेटा पर ऑर्डर लगाने की अनुमति देता है, लेकिन यह याद नहीं रखता है या अपने आप में एक है।

महत्वपूर्ण बिंदु :यहां तक ​​कि जब एसक्यूएल ने पिछले 1 मिलियन बार स्टेटमेंट द्वारा ऑर्डर के बिना आइटम्स को सही क्रम में लौटाया, तो यह गारंटी नहीं देता कि वह ऐसा करेगा। यहां तक ​​​​कि अगर टेबल पर एक क्लस्टर इंडेक्स मौजूद है, तो परिणाम आपके अपेक्षित क्रम में वापस आने की गारंटी नहीं है। विशेष रूप से जब SQL संस्करण बदलते हैं, स्पष्ट रूप से क्लॉज द्वारा ऑर्डर का उपयोग नहीं करने से प्रोग्राम टूट सकते हैं जो मानते हैं कि क्वेरी उनके इच्छित क्रम में होगी!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j क्वेरी भाषा - साइफर

  2. Utf8_general_ci और utf8_unicode_ci में क्या अंतर हैं?

  3. MySQL क्वेरी के WHERE क्लॉज में कॉलम उपनाम का उपयोग करने से त्रुटि उत्पन्न होती है

  4. MySQL में SUBDATE() बनाम DATE_SUB():क्या अंतर है?

  5. एक्सटेंशन mysqli गुम है, phpmyadmin काम नहीं करता है