Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL lấy các bản ghi thay thế (alternating records) với điều kiện OR

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 ý

  • OR phù hợp khi các điều kiện khác cột hoặc phức tạp.
  • IN tố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 OR trên nhiều cột khác nhau nếu có thể viết lại bằng UNION để tận dụng index tốt hơn.