Sử dụng UNION để gộp nhiều câu SELECT hằng số thành một result set các số nguyên.
Cú pháp
SELECT giaTri1 UNION SELECT giaTri2 UNION SELECT giaTri3 ...
Ví dụ
mysql> SELECT 1000 UNION SELECT 2000 UNION SELECT 3000 UNION SELECT 4000 UNION SELECT 5000 UNION SELECT 6000 UNION SELECT 7000;
+------+ | 1000 | +------+ | 1000 | | 2000 | | 3000 | | 4000 | | 5000 | | 6000 | | 7000 | +------+ 7 rows in set (0.03 sec)
Đặc điểm UNION:
- Tự động loại bỏ trùng lặp (giống
DISTINCT) - Tất cả SELECT phải cùng số cột và kiểu tương thích
- Dùng
UNION ALLđể giữ trùng lặp (nhanh hơn)
Ứng dụng: Tạo danh sách giá trị tĩnh cho IN, JOIN, hoặc bảng số (numbers table) tạm thời.
MySQL 8.0+: Dùng WITH RECURSIVE (CTE) để sinh dãy số hiệu quả hơn cho نطاق lớn.