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

दिया गया सिंटैक्स mysql में मान्य क्यों है?

यह वैकल्पिक UNION है अंतिम ORDER BY . के साथ वाक्य रचना ।

दो चयनों के बीच ऐसा मिलन ऐसा दिखता है:

(SELECT ...)
UNION
(SELECT ...) ORDER BY ... LIMIT ...

और यही है एक . के बीच ऐसा मिलन चयन इस तरह दिखता है:

(SELECT ...) ORDER BY ... LIMIT ...

सबक्वेरी से बिल्कुल भी संबंधित नहीं है।

यह MySQL में प्रलेखित नहीं है, लेकिन से स्पष्ट है व्याकरण :

top_level_select_init:
        SELECT_SYM
        {
            Lex->sql_command= SQLCOM_SELECT;
        }
        select_init2
        | '(' select_paren ')' union_opt
        ;


/* Need select_init2 for subselects. */
union_select_init:
        SELECT_SYM select_init2
        | '(' select_paren ')' union_opt
        ;

...

union_opt:
        /* Empty */ { $$= 0; }
        | union_list { $$= 1; }
        | union_order_or_limit { $$= 1; }
        ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql में भौतिकीकृत दृश्य

  2. मैं LIMIT क्लॉज में बड़ी ऑफसेट के साथ MySQL क्वेरी को कैसे तेज कर सकता हूं?

  3. MySQL - न्यूनतम मान प्राप्त करना

  4. विजुअल क्वेरी बिल्डर

  5. SQLSTATE [42000]:सिंटैक्स त्रुटि या पहुँच उल्लंघन:1055 एक्सप्रेशन #3 का चयन सूची समूह द्वारा खंड में नहीं है और इसमें गैर-समेकित है