Truy xuất dữ liệu dựa theo nhiều điều kiện trong MySQL


Nếu bạn muốn truy xuất dữ liệu với yêu cầu là dữ liệu phải thỏa nhiều hơn một điều điện, thì chúng ta dùng từ khóa AND.

Nếu bạn muốn truy xuất dữ liệu với yêu cầu là dữ liệu thỏa điều kiện này hoặc điều kiện khác, thì chúng ta dùng từ khóa OR.

Cú pháp

Cú pháp AND:

Hiển thị dữ liệu với yêu cầu là dữ liệu phải thỏa tất cả các điều kiện

SELECT *
FROM name_table
WHERE condition1 AND condition2 AND condition3;

Trong đó: condition là một biểu thức điều kiện(Ví dụ: Age > 22)

Cú pháp OR:

Hiển thị dữ liệu với yêu cầu là dữ liệu phải thỏa điều kiện này hoặc điều kiện khác

SELECT *
FROM name_table
WHERE condition1 OR condition2 OR condition3;

Trong đó: condition là một biểu thức điều kiện(Ví dụ: Age > 22)

Một số ví dụ

Ở bài học trước chúng ta có một bảng sinh_vien như sau:

(Bạn có thể bấm vào đây để download câu lệnh tạo bảng như bên dưới)

Full_name Gender Age City
Nguyen Thanh Nhan Nam 19 Can Tho
Pham Thu Huong Nu 20 Vinh Long
Nguyen Nhu Ngoc Nu 20 Soc Trang
Bui Thanh Bao Nam 19 Soc Trang
Le My Nhan Nu 22 Can Tho
Tan Thuc Bao Nam 35 An Giang
Trinh Giao Kim Nam 44 Bac Lieu
Ví dụ 1

Truy xuất những sinh viên có giới tính là nam và tuổi nhỏ hơn hoặc bằng 35

SELECT *
FROM sinh_vien
WHERE Gender="Nam" AND Age<=35;

Trong đó: condition là một biểu thức điều kiện(Ví dụ: Age > 22)

Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:

Full_name Gender Age City
Nguyen Thanh Nhan Nam 19 Can Tho
Bui Thanh Bao Nam 19 Soc Trang
Tan Thuc Bao Nam 35 An Giang
Ví dụ 2

Truy xuất họ tên và giới tính của những sinh viên có giới tính là nam và sống ở Can Tho

SELECT Full_name, Gender
FROM sinh_vien
WHERE Gender="Nam" AND City="Can Tho";

Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:

Full_name Gender
Nguyen Thanh Nhan Nam
Ví dụ 3

Truy xuất những sinh viên sống ở Can Tho hoặc Vinh Long hoặc Soc Trang

SELECT *
FROM sinh_vien
WHERE City="Can Tho" OR City="Vinh Long" OR City="Soc Trang";

Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:

Full_name Gender Age City
Nguyen Thanh Nhan Nam 19 Can Tho
Pham Thu Huong Nu 20 Vinh Long
Nguyen Nhu Ngoc Nu 20 Soc Trang
Bui Thanh Bao Nam 19 Soc Trang
Le My Nhan Nu 22 Can Tho
Ví dụ 4 (Phối hợp giữa AND và OR)

Truy xuất họ tên của những sinh viên nam sống ở Can Tho hoặc sinh viên nữ sống ở Soc Trang

SELECT Full_name
FROM sinh_vien
WHERE (Gender="Nam" AND City="Can Tho") OR (Gender="Nu" AND City="Soc Trang");

Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:

Full_name
Nguyen Thanh Nhan
Nguyen Nhu Ngoc