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

Nhiều điều kiện WHERE với LIMIT trong MySQL?

Để thực hiện nhiều điều kiện WHERE kết hợp với LIMIT trong MySQL, bạn có thể sử dụng toán tử UNION ALL. Cách này cho phép bạn truy vấn nhiều tập kết quả riêng biệt và gộp chúng lại với nhau.

Ví dụ minh họa

Trước tiên, tạo một bảng demo:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Subject VARCHAR(100)
);

Chèn một số bản ghi:

mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('Java');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');

Xem toàn bộ dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả

+----+---------+
| Id | Subject |
+----+---------+
| 1  | MySQL   |
| 2  | MySQL   |
| 3  | MongoDB |
| 4  | MongoDB |
| 5  | MySQL   |
| 6  | Java    |
| 7  | MySQL   |
| 8  | MongoDB |
+----+---------+

Truy vấn với nhiều điều kiện WHERE và LIMIT khác nhau:

mysql> (SELECT * FROM DemoTable WHERE Subject='MySQL' LIMIT 3)
    -> UNION ALL
    -> (SELECT * FROM DemoTable WHERE Subject='MongoDB' LIMIT 5);

Kết quả

+----+---------+
| Id | Subject |
+----+---------+
| 1  | MySQL   |
| 2  | MySQL   |
| 5  | MySQL   |
| 3  | MongoDB |
| 4  | MongoDB |
| 8  | MongoDB |
+----+---------+

Giải thích: Truy vấn đầu tiên lấy 3 bản ghi có Subject='MySQL', truy vấn thứ hai lấy 5 bản ghi có Subject='MongoDB'. UNION ALL gộp hai tập kết quả này lại (giữ nguyên trùng lặp nếu có).