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

เลือกชื่อที่ไม่ซ้ำจากสองคอลัมน์ใน MySQL รวมแสดงในคอลัมน์เดียวด้วย UNION

เมื่อต้องการรวมค่าที่ไม่ซ้ำกัน (Distinct) จากสองคอลัมน์ แล้วแสดงในคอลัมน์เดียว สามารถใช้ UNION ซึ่งจะลบค่าซ้ำออกโดยอัตโนมัติ

ตัวอย่างการสร้างตาราง

mysql> create table DemoTable ( 
    Name1 varchar(100), 
    Name2 varchar(100) ); 
Query OK, 0 rows affected (0.58 sec)

เพิ่มข้อมูล

mysql> insert into DemoTable values('Adam','Bob'); 
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Adam','Bob'); 
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('David','Chris'); 
Query OK, 1 row affected (0.13 sec)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable;
+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Adam  | Bob   |
| Adam  | Bob   |
| David | Chris |
+-------+-------+
3 rows in set (0.00 sec)

คำสั่ง UNION รวมค่าที่ไม่ซ้ำจากทั้งสองคอลัมน์

mysql> select Name1 from DemoTable UNION select Name2 from DemoTable;

ผลลัพธ์

+-------+
| Name1 |
+-------+
| Adam  |
| David |
| Bob   |
| Chris |
+-------+
4 rows in set (0.02 sec)

คำอธิบาย:

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