ใน MySQL สามารถดึงข้อมูลที่ตรงกับหลายเงื่อนไขพร้อมกันได้โดยใช้ตัวดำเนินการ OR ในส่วน WHERE ซึ่งจะคืนค่าแถวที่ตรงกับเงื่อนไขใดเงื่อนไขหนึ่งอย่างน้อยหนึ่งข้อ
ตัวอย่างการใช้งาน
สร้างตารางพนักงาน:
mysql> CREATE TABLE DemoTable1421 (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20),
-> EmployeeSalary INT
-> );
เพิ่มข้อมูลตัวอย่าง:
mysql> INSERT INTO DemoTable1421 (EmployeeName, EmployeeSalary) VALUES ('Chris', 10000);
mysql> INSERT INTO DemoTable1421 (EmployeeName, EmployeeSalary) VALUES ('Bob', 15000);
mysql> INSERT INTO DemoTable1421 (EmployeeName, EmployeeSalary) VALUES ('David', 8000);
mysql> INSERT INTO DemoTable1421 (EmployeeName, EmployeeSalary) VALUES ('Carol', 8500);
mysql> INSERT INTO DemoTable1421 (EmployeeName, EmployeeSalary) VALUES ('Mike', 14500);
ดูข้อมูลทั้งหมด:
mysql> SELECT * FROM DemoTable1421; +------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 10000 | | 2 | Bob | 15000 | | 3 | David | 8000 | | 4 | Carol | 8500 | | 5 | Mike | 14500 | +------------+--------------+----------------+
ค้นหาข้อมูลที่ตรงกับเงื่อนไขใดเงื่อนไขหนึ่ง (ID=1 หรือ ชื่อ David หรือ เงินเดือน 14500):
mysql> SELECT * FROM DemoTable1421
-> WHERE EmployeeId = 1 OR EmployeeName = 'David' OR EmployeeSalary = 14500;
ผลลัพธ์:
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 10000 | | 3 | David | 8000 | | 5 | Mike | 14500 | +------------+--------------+----------------+
คำแนะนำเพิ่มเติม
- ใช้ OR เมื่อต้องการให้ตรงกับเงื่อนไขอย่างน้อยหนึ่งข้อ
- ใช้ AND เมื่อต้องการให้ตรงกับทุกเงื่อนไขพร้อมกัน
- สามารถรวม OR และ AND ได้โดยใช้วงเล็บเพื่อจัดกลุ่มเงื่อนไข
- สำหรับการค้นหาค่าในชุดข้อมูล ใช้ IN() แทนจะสะดวกกว่า (เช่น
WHERE EmployeeId IN (1,3,5))