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

Tại sao UNION ALL có và không có dấu ngoặc đơn lại hoạt động khác nhau?

Đó là vì bạn đang sử dụng LIMIT.

Tham chiếu MySql nói rằng nếu bạn muốn sử dụng ORDER BY hoặc LIMIT trên các lựa chọn riêng lẻ, thì bạn phải đặt các lựa chọn của mình bằng dấu ngoặc đơn.

Ví dụ (Từ tham chiếu MySQL):

Để áp dụng ORDER BY hoặc LIMIT cho một SELECT riêng lẻ, hãy đặt mệnh đề bên trong dấu ngoặc đơn bao quanh SELECT:

(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

Có thể tìm thấy tài nguyên tại đây: http://dev.mysql.com /doc/refman/5.0/en/union.html

CHỈNH SỬA: Đã thay đổi liên kết tham chiếu vì liên kết trước đó dành cho phiên bản 5.5. Nhưng câu trả lời không thay đổi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thứ tự thực hiện trong môi trường web

  2. Lỗi truy vấn MySQL 1054

  3. GROUP BY - không nhóm NULL

  4. Cập nhật chuỗi trống thành NULL cho toàn bộ cơ sở dữ liệu

  5. Chèn một hàng và tránh điều kiện đua (PHP / MySQL)