Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้างตารางชั่วคราวจากรายการค่าที่คั่นด้วยคอมมาใน MySQL ด้วย UNION ALL

บทนำ

เมื่อต้องการสร้างชุดข้อมูล (Result Set) จากรายการค่าที่กำหนดเองโดยไม่ต้องสร้างตารางจริง สามารถใช้ UNION ALL รวมหลายคำสั่ง SELECT เข้าด้วยกัน

ตัวอย่างที่ 1: สร้างตารางจากค่า 10, 20, 30, 40, 50

mysql> SELECT 10 AS Number
    -> UNION ALL SELECT 20
    -> UNION ALL SELECT 30
    -> UNION ALL SELECT 40
    -> UNION ALL SELECT 50;

ผลลัพธ์

+--------+
| Number |
+--------+
| 10     |
| 20     |
| 30     |
| 40     |
| 50     |
+--------+
5 rows in set (0.00 sec)

ตัวอย่างที่ 2: สร้างตารางจากค่า 1, 2, 3

mysql> SELECT 1 AS a UNION ALL SELECT 2 UNION ALL SELECT 3;

ผลลัพธ์

+---+
| a |
+---+
| 1 |
| 2 |
| 3 |
+---+
3 rows in set (0.00 sec)

ข้อสังเกต

  • ใช้ UNION ALL แทน UNION เพื่อเก็บค่าซ้ำได้ (เร็วกว่าเพราะไม่ต้องตรวจสอบค่าซ้ำ)
  • คอลัมน์แรกจะกำหนดชื่อและชนิดข้อมูลของคอลัมน์ผลลัพธ์
  • เหมาะสำหรับสร้างข้อมูลทดสอบ (Test Data) หรือตารางค่าคงที่ (Lookup Table) ชั่วคราว