บทความนี้สาธิตการใช้ UNION เพื่อค้นหาข้อมูลจากหลายคอลัมน์และรวมผลลัพธ์เป็นคอลัมน์เดียว โดยค้นหา Id ที่ขึ้นต้นด้วย 100 และ FirstName ที่มีคำว่า John
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable645 (Id INT, FirstName VARCHAR(100));
Query OK, 0 rows affected (0.67 sec)
mysql> INSERT INTO DemoTable645 VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable645 VALUES(101, 'Robert');
mysql> INSERT INTO DemoTable645 VALUES(101, 'Bob');
mysql> INSERT INTO DemoTable645 VALUES(102, 'Carol');
mysql> INSERT INTO DemoTable645 VALUES(100, 'John');
mysql> INSERT INTO DemoTable645 VALUES(100, 'Robert');
mysql> INSERT INTO DemoTable645 VALUES(101, 'Mike');
mysql> INSERT INTO DemoTable645 VALUES(101, 'John');
คิวรี UNION พร้อม LIKE และ LIMIT
mysql> SELECT Id AS Records FROM DemoTable645 WHERE Id LIKE '%100%'
UNION
SELECT FirstName FROM DemoTable645 WHERE FirstName LIKE '%John%'
ORDER BY 1 LIMIT 3;
ผลลัพธ์
+---------+
| Records |
+---------+
| 100 |
| John |
+---------+
คำอธิบาย:
UNION- รวมผลลัพธ์จาก 2 คิวรี และลบแถวซ้ำออก (ใช้UNION ALLถ้าต้องการเก็บซ้ำ)LIKE '%100%'- ค้นหา Id ที่มี 100 อยู่ตรงไหนก็ได้ORDER BY 1- เรียงตามคอลัมน์แรก (Records)LIMIT 3- จำกัดผลลัพธ์ 3 แถว