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

เลือกจากชุดของจำนวนเต็มใน MySQL

การสร้างชุดตัวเลข (Number Set) ใน MySQL ด้วย UNION

ใช้ UNION รวมผลลัพธ์ของหลาย SELECT ค่าคงที่ เพื่อสร้างชุดตัวเลข (Automatically DISTINCT)

SELECT val1 UNION SELECT val2 UNION SELECT val3 ...

ตัวอย่างการใช้งาน

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 |
+------+

จุดสังเกต: UNION = UNION DISTINCT (ลบซ้ำอัตโนมัติ) | ใช้ UNION ALL หากต้องการเก็บซ้ำ (เร็วกว่า)

การประยุกต์ใช้จริง (สร้าง Sequence):

  • MySQL 8.0+: WITH RECURSIVE nums(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM nums WHERE n < 100) SELECT * FROM nums;
  • ตาราง Numbers (Tally Table) - สร้างไว้ 1 ครั้ง ใช้ซ้ำได้
  • SELECT seq FROM seq_1_to_100 (MariaDB)

กรณีต้องการ WHERE IN ชุดค่า:

SELECT * FROM table WHERE id IN (SELECT 1000 UNION SELECT 2000 UNION SELECT 3000);