Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao cú pháp đã cho hợp lệ trong mysql?

Đó là UNION thay thế cú pháp với ORDER BY cuối cùng .

Đây là sự kết hợp giữa hai lựa chọn như vậy:

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

Và đây là sự kết hợp như vậy giữa một chọn trông giống như:

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

Không liên quan đến truy vấn phụ.

Điều này không được ghi lại trong MySQL, nhưng rõ ràng từ ngữ pháp :

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. Hành vi đối với toán tử trừ giữa hai ngày giờ trong MySQL là gì?

  2. MySql Single Table, Chọn 7 ngày qua và bao gồm các hàng trống

  3. MySQL kết hợp hai cột và thêm vào một cột mới

  4. Không thể tìm ra cách chạy mysqli_multi_query và sử dụng kết quả từ truy vấn cuối cùng

  5. node.js async / await sử dụng với MySQL