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

ค้นหาข้อมูลหลายคอลัมน์ใน MySQL ด้วย UNION

บทความนี้สาธิตการใช้ 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 แถว