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

संदर्भ प्रलेखन में mysql DISTINCT () को कैसे परिभाषित करता है?

पूर्णता के लिए मैं अपना जवाब दे रहा हूं और दूसरे से लिंक कर रहा हूं प्रश्न मेरे अपने। ऐसा लगता है कि यह व्यवहार SQL मानक का प्रत्यक्ष परिणाम है जो फ़ंक्शन और कोष्ठक के बीच व्हाइटस्पेस की अनुमति देता है।

चूंकि इसे (आम तौर पर) FUNCTION_NAME (x) कहने की अनुमति है, तो जब यह फ़ंक्शन चयन के पहले पद पर लागू होता है

SELECT FUNCTION_NAME (x)

तो वहां पार्सर को यह स्थापित करने में कठिनाई होगी कि यह फ़ंक्शन नाम का संदर्भ है या संशोधित कीवर्ड चुनें।

तो उपरोक्त मामले में FUNCTION_NAME वास्तव में पार्सर के लिए FUNCTION_NAME_OR_KEYWORD है।

लेकिन यह और आगे जाता है:चूंकि फ़ंक्शन नाम और कोष्ठक के बीच की जगह IS ने अनुमति दी है कि पार्सर वास्तव में अंतर नहीं कर सकता है

SELECT FUNCTION_NAME_OR_KEYWORD (x)

और

SELECT FUNCTION_NAME_OR_KEYWORD(x)

(यह देखने के लिए कीवर्ड का परीक्षण करना चाहिए कि क्या वे फ़ंक्शन हैं), और चूंकि (x) को x में पार्स किया जाएगा, इसलिए FUNCTION_NAME_OR_KEYWORD -> DISTINCT (और अन्य सभी SELECT संशोधित कीवर्ड) के बीच कोई अंतर नहीं है

SELECT DISTINCT x, y, z, ...

और

SELECT DISTINCT(x), y, z, ...

QED, लेकिन कठोर संदर्भों के बिना (मान लें कि मानक फ़ंक्शन नामों और कोष्ठक के बीच व्हाइटस्पेस की परवाह नहीं है, मेरा मानना ​​​​है, उचित है, लेकिन मैं उस बिंदु तक बीएनएफ व्याकरण का पालन करने में असमर्थ था कि मैं सटीक नियम उद्धृत कर सकता था)।

नोट:MySQL में कुछ निश्चित कार्य हैं जहां यह कार्यों और कोष्ठक के बीच सफेद जगह की परवाह करता है, लेकिन मेरा मानना ​​​​है कि ये अपवाद हैं (इसलिए इसे अनदेखा करने के लिए सर्वर विकल्प)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ़ंक्शन के अंदर mysqli/mysql क्वेरी काम नहीं कर रही है

  2. पीडीओ mysql_num_rows या mssql_num_rows के बराबर

  3. FLOAT डेटा पर SUM का उपयोग करना

  4. एकाधिक चर के साथ mysql तालिका संरचना

  5. आईडी ऑटोइनक्रिकमेंट रीसेट करें? phpmyadmin