Trong MySQL, để truy xuất các bản ghi thỏa mãn một trong nhiều điều kiện, chúng ta sử dụng toán tử OR trong mệnh đề WHERE. Điều này cho phép lọc dữ liệu dựa trên nhiều tiêu chí khác nhau trên cùng một hoặc nhiều cột.
Ví dụ minh họa
Tạo bảng nhân viên:
mysql> CREATE TABLE DemoTable1421 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(20),
EmployeeSalary INT
);
Chèn dữ liệu mẫu:
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);
Xem toàn bộ dữ liệu:
mysql> SELECT * FROM DemoTable1421;
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 10000 | | 2 | Bob | 15000 | | 3 | David | 8000 | | 4 | Carol | 8500 | | 5 | Mike | 14500 | +------------+--------------+----------------+
Truy vấn với nhiều điều kiện OR
Lấy các nhân viên có ID = 1 HOẶC tên là 'David' HOẶC lương = 14500:
mysql> SELECT * FROM DemoTable1421
WHERE EmployeeId = 1
OR EmployeeName = 'David'
OR EmployeeSalary = 14500;
Kết quả:
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 10000 | | 3 | David | 8000 | | 5 | Mike | 14500 | +------------+--------------+----------------+
Lưu ý quan trọng
- Toán tử
ORtrả về bản ghi nếu ít nhất một điều kiện đúng. - Có thể kết hợp
ORvớiANDcho logic phức tạp hơn (nhớ dùng ngoặc đơn để nhóm điều kiện). - Với danh sách giá trị lớn, cân nhắc dùng
IN()thay cho nhiềuORliên tiếp để code gọn hơn.