Giới thiệu
Bài viết minh họa cách lấy các bản ghi thỏa mãn một trong nhiều điều kiện cụ thể bằng toán tử OR. Ví dụ lấy các hàng có ID chẵn (2, 4, 6).
Ví dụ thực hành
1. Tạo bảng DemoTable772
mysql> CREATE TABLE DemoTable772 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
Age INT
);
2. Chèn dữ liệu
mysql> INSERT INTO DemoTable772(Name,Age) VALUES('Chris',21),('Robert',26),('Mike',27),
('Sam',24),('Carol',28),('David',25);
3. Truy vấn với OR
mysql> SELECT * FROM DemoTable772 WHERE Id=2 OR Id=4 OR Id=6;
4. Kết quả
+----+--------+------+
| Id | Name | Age |
+----+--------+------+
| 2 | Robert | 26 |
| 4 | Sam | 24 |
| 6 | David | 25 |
+----+--------+------+
Cách viết gọn hơn với IN
SELECT * FROM DemoTable772 WHERE Id IN (2,4,6);
Cú pháp IN ngắn gọn, dễ đọc và hiệu suất tương đương (MySQL tối ưu hóa nội bộ).
Mở rộng: Lấy hàng chẵn/lẻ tự động
-- Hàng chẵn (ID % 2 = 0)
SELECT * FROM DemoTable772 WHERE Id % 2 = 0;
-- Hàng lẻ (ID % 2 = 1)
SELECT * FROM DemoTable772 WHERE Id % 2 = 1;
Lưu ý
ORphù hợp khi các điều kiện khác cột hoặc phức tạp.INtốt hơn cho danh sách giá trị rời rạc trên cùng một cột.- Tránh lạm dụng
ORtrên nhiều cột khác nhau nếu có thể viết lại bằngUNIONđể tận dụng index tốt hơn.