Trong chủ đề này, chúng ta sẽ học cách thêm nhiều điều kiện bằng mệnh đề WHERE.
Trước tiên, hãy hiểu khái niệm về mệnh đề WHERE.
Mệnh đề WHERE được sử dụng để chỉ định một điều kiện trong khi truy xuất bản ghi từ bảng.
Mệnh đề WHERE thường được sử dụng với câu lệnh SELECT trong SQL
Truy vấn SELECT sẽ chỉ hiển thị các bản ghi thỏa mãn điều kiện được chỉ định trong mệnh đề WHERE
Có thể có một hoặc nhiều điều kiện được chỉ định trong điều kiện mệnh đề WHERE của truy vấn SELECT.
Toán tử AND và OR được sử dụng để kiểm tra nhiều điều kiện bằng mệnh đề WHERE trong một truy vấn.
- Toán tử AND với mệnh đề WHERE
Bất cứ khi nào toán tử AND được sử dụng giữa các điều kiện với mệnh đề WHERE để kiểm tra nhiều điều kiện trong truy vấn SELECT, kết quả được hiển thị khi chỉ đáp ứng nhiều hơn một điều kiện đã cho trong truy vấn.
Cú pháp:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Ví dụ 1:
Hãy xem xét bảng học sinh được đưa ra dưới đây. Chúng ta sẽ xem xét cùng một bảng cho tất cả các ví dụ sau.
Student_RollNo | Student_Name | Student_Gender | Student_MobileNumber | Student_HomeTown | Student_Age | Student_Percentage |
1 | Thêm nữa | Nam | 9890786123 | Lucknow | 23 | 75 |
2 | Kunal Shah | Nam | 7789056784 | Chandigarh | 20 | 68 |
3 | Kartik Goenka | Nam | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Shah | Nữ | 8890907656 | Chandigarh | 24 | 94 |
5 | Snehal Jain | Nữ | 8657983476 | Surat | 21 | 94 |
Bây giờ, chúng ta hãy xem một vài ví dụ để hiểu khái niệm này một cách thực tế.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Đầu ra:
Chỉ có một kỷ lục trong bảng học sinh với danh sách số 2, có giới tính là nam và quê quán là Chandigarh. Ngay cả khi bất kỳ một trong các điều kiện được chỉ định không được đáp ứng, thì trong trường hợp đó, kết quả đầu ra sẽ không giống nhau. Bản ghi / bản ghi được hiển thị sẽ khác hoặc trong một số trường hợp, đầu ra có thể là một tập hợp trống nếu không bản ghi nào thỏa mãn cả hai điều kiện.
Ví dụ 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Đầu ra:
Chỉ có một bản ghi có số cuộn ‘5’ trong bảng học sinh, có tuổi bằng ‘21’ và phần trăm bằng ‘94’.
Ví dụ 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Đầu ra:
Trong số tất cả các bản ghi trong bảng sinh viên, chỉ có một bản ghi có số cuộn là "4", có giới tính là "nam", quê quán là "Chandigarh" và tuổi bằng "24". Đây là bản ghi duy nhất đáp ứng cả ba điều kiện.
Ví dụ 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Đầu ra:
Trong số tất cả các bản ghi trong bảng sinh viên, chỉ có một bản ghi có số cuộn '3' đáp ứng cả ba điều kiện, tức là giới tính là nam, tên bằng 'Kartik Goenka' và phần trăm bằng '92'.
- Toán tử OR với mệnh đề WHERE
Bất cứ khi nào toán tử OR được sử dụng giữa các điều kiện với mệnh đề WHERE để kiểm tra nhiều điều kiện trong truy vấn SELECT, thì kết quả được hiển thị khi đáp ứng ít nhất một điều kiện trong số tất cả các điều kiện khác được viết trong truy vấn.
Cú pháp:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Ví dụ 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Đầu ra:
Trong bảng học sinh, có bốn bản ghi với danh sách số 1, 2, 3 và 4 có giới tính là nam hoặc quê quán là Chandigarh. Ngay cả khi đáp ứng bất kỳ điều kiện cụ thể nào, bản ghi đó sẽ được coi là một phần của kết quả đầu ra. Trong một số trường hợp, đầu ra có thể là một tập hợp trống nếu không có bản ghi nào thỏa mãn một trong hai điều kiện.
Ví dụ 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Đầu ra:
Có hai số cuộn bản ghi "4" và "5" trong bảng sinh viên, có tuổi bằng "21" hoặc tỷ lệ phần trăm bằng "94".
Ví dụ 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Đầu ra:
Trong số tất cả các bản ghi trong bảng sinh viên, có ba bản ghi có số cuộn ‘2’, ‘4’ và ‘5’, có giới tính là ‘nữ’; thành phố quê hương là 'Chandigarh' hoặc tuổi bằng '24'. Đây là những bản ghi đáp ứng một trong ba điều kiện.
Ví dụ 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Đầu ra:
Trong số tất cả các bản ghi trong bảng sinh viên, có ba bản ghi có số cuộn '1', '2' và '3' trong đó một trong ba điều kiện được đáp ứng, tức là giới tính là nam, tên bằng 'Kartik Goenka' hoặc tỷ lệ phần trăm bằng '92'.
- Toán tử VÀ và HOẶC với mệnh đề WHERE trong một truy vấn duy nhất
Trong truy vấn mệnh đề WHERE với câu lệnh SELECT, chúng ta cũng có thể sử dụng kết hợp các toán tử AND và OR trong một truy vấn duy nhất. Mục đích của việc sử dụng kết hợp các toán tử AND và OR trong một truy vấn duy nhất là để kiểm tra mức độ cao hơn của các điều kiện phức tạp.
Cú pháp:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Ví dụ 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Đầu ra:
Theo các điều kiện trong một truy vấn, bản ghi phải có giới tính là 'nữ' và quê quán là 'Chandigarh'. Tuổi của học sinh có thể là '24'. Vì vậy, chỉ có một bản ghi có số cuộn ‘4’, đáp ứng các điều kiện này. Ngay cả khi bất kỳ bản ghi nào có giới tính là "nữ" và quê quán không phải là "Chandigarh" hoặc ngược lại, thì bản ghi đó sẽ không được xem xét trong đầu ra.
Ví dụ 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Đầu ra:
Theo các điều kiện trong truy vấn, bản ghi phải có giới tính là 'nữ' hoặc quê quán là 'Chandigarh'. Tuổi của học sinh không được khác hơn "24". Vì vậy, có hai bản ghi có số cuộn ‘4’ và ‘5’ đáp ứng các điều kiện này.
Ví dụ 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Đầu ra:
Chỉ có một bản ghi trong bảng học sinh có giới tính là 'nam', quê quán là 'Lucknow' và tỷ lệ học sinh phải là '75'. Tuổi của sinh viên có thể là 23 hoặc ngoài 23.
Ví dụ 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Đầu ra:
Trong bảng sinh viên, có ba bản ghi có giới tính là 'nam' và tuổi là '23'. Thành phố quê hương có thể là ‘Lucknow’. Ngoài ra, tỷ lệ phần trăm có thể là '75'.