Có rất nhiều toán tử khác nhau mà mình không thể giới thiệu hết được nhưng mà AND và OR là 2 toán tử có thể nói là sử dụng nhiều nhất khi làm việc với SQL. Vì vậy mà bài này mình sẽ nói rõ hơn về 2 toán tử AND và OR.

1. Giới thiệu chung về toán tử AND và OR

Toán tử AND và OR là hai toán tử có lẽ không lạ gì với ta nữa vì có thể các bạn đã được học nó ở bộ môn toán rồi. Và trong PHP toán tử AND và OR được sử dụng để kết hợp nhiều điều kiện nhằm thu hẹp dữ liệu trong câu lệnh SQL. Hai toán tử này được gọi là toản tử liên hợp trong SQL. AND và OR cho phép tạo nhiều so sánh với các toán tử khác trong cùng một lệnh SQL. Hay nói một cách khác là các toán tử này cung cấp phương tiện để so sánh với các toán tử khác nhau trong cùng một câu lệnh SQL. Cùng với đó là 2 toán tử này hay được sử dụng chung với mệnh đề Where.

2. Toán tử AND trong SQL

Trong tiếng anh thì AND có nghĩa là “và” và giúp ta kết nối 2 vế của câu. Trong lập trình thì cũng tương tự, AND giúp kết nối hai mệnh đề lại với nhau là mệnh đề bên phải và mệnh đề bên trái hay gọi là về phải và về trái. Kết quả AND sẽ trả về đúng(True) nếu cả hai về đều đúng và trả về sai (False) nếu một trong hai về sai.

Ví dụ: nếu bạn muốn được học sinh giỏi thì: điểm trung bình trên 8.0 và không có môn nào dưới 6.5. Chỉ cần vi phạm một trong 2 điều kiện này thì bạn sẽ không được học sinh giỏi.

AND cho phép sử dụng nhiều điều kiện trong mệnh đề Where của câu lệnh SQL. Như ở những bài trước mà các bạn đã đọc, thì ta chỉ có thể sử dụng một điều kiện trong Where, khi kết hợp với Select. Nhưng nếu có AND thì ta có thể thêm vào các điều kiện khác để đảm bảo dữ liệu lấy vào chuẩn xác hơn. Dữ liệu lấy ra phải thỏa mãn cùng lúc tất cả các điều kiện có trong mệnh đề Where.

Cú pháp cơ bản:

SELECT cot1, cot2, cotN 
FROM TEN_BANG
WHERE [DIEU_KIEN1] AND [DIEU_KIEN2]...AND [DIEU_KIENN];

Bạn có thể kết hợp N điều kiện bằng toán tử AND. Đối với một hành động được thực hiện bởi các câu lệnh SQL, cho dù đó là một transaction hoặc một truy vấn, tất cả các điều kiện AND và phải là TRUE.

Ví dụ:

Ta có bảng demo có các bản ghi sau:

ID Name Age Address Salary
1 Thành 17 Hà Nội 4000$
2 Nam 21 Đà Nẵng 4200$
3 Sơn 18 Cà Mau 3800$
4 Hòa 20 Phúc Thọ 2000$

Ở đây ta sẽ đưa ra việc lấy ID, Name(tên) và Salary(lương) từ bảng demo. Điều kiện ở đây chính là Salary phải lớn hơn 2000 và tuổi phải trên 18 tuổi:

SQL> SELECT ID, NAME, SALARY 
FROM demo
WHERE SALARY > 2000 AND AGE > 18;

Kết quả sẽ là:

2 Nam 4200$

3. Toán tử OR trong SQL

OR trong tiến anh có nghĩa là hoặc và nó giúp ta chọn một trong 2 về của câu. Và cũng tương tự như vậy, trong lập trình thì OR cũng là toán tử lấy một trong 2 vế điều kiện. Có nghĩa là nó sẽ trả về True nếu một trong hai về đúng, và ngược lại trả về False nếu cả hai vế đều sai. Đây chính là sự khác nhau rõ ràng nhất giữa 2 toán tử AND và OR nhé!

Ví dụ: Nếu bạn nghỉ quá 4 buổi học hoặc không thi đỗ thì sẽ bị học lại. Nghĩa là nếu bạn đáp ứng được một trong 2 điều kiện thì sẽ được học lại nhé!

Toán tử OR được sử dụng để kết hợp nhiều điều kiện trong mệnh đề WHERE của lệnh SQL. Khi sử dụng OR trong WHERE kết hợp với SELECT thì dữ liệu lấy ra chỉ cần thỏa mãn một trong các điều kiện được liệt kê.

Cú pháp cơ bản:

SELECT cot1, cot2, cotN 
FROM ten_bang
WHERE [dieu_kien_1] OR [dieu_kien_2]...OR [dieu_kien_N]

Bạn có thể kết hợp N điều kiện nhờ sử dụng OR, và chỉ cần một trong số N điều kiện này đúng thì dữ liệu sẽ được lấy ra.

Ví dụ:

Cũng là bảng demo trên nhé!

ID Name Age Address Salary
1 Thành 17 Hà Nội 4000$
2 Nam 21 Đà Nẵng 4200$
3 Sơn 18 Cà Mau 3800$
4 Hòa 20 Phúc Thọ 2000$

Ta sẽ đưa ra việc lấy ID, Name(tên) và Salary(lương) từ bảng demo. Với điều kiện là lương phải lớn hơn 3000 hoặc tuổi trên 18:

SQL> SELECT ID, TEN, LUONG 
FROM demo
WHERE Salary > 3000 OR age > 18;

Khi thực hiện lệnh trên, bất ký bản ghi nào thỏa mãn điều kiện lương cao hơn 3000 hoặc tuổi lớn hơn 18 đều sẽ được trả về trong bảng kết quả, giống như dưới đây:

2 Nam 4200$
4 Hòa 2000$

4. Kết hợp giữa 2 toán tử AND và OR

Ngoài việc sử dụng với mệnh đề WHERE, SQL còn cho phép người dùng kết hợp các toán tử lại với nhau. Cũng tương tự như việc sử dụng riêng lẻ từng toán tử, ta có thể kết hợp các toán tử lại với cú pháp phức tạp hơn một chút. Mình sẽ đưa ra một cú pháp đơn giản nhất cho các bạn dễ hiểu nhé:

SELECT cot1, cot2, cotN 
FROM tên_bảng
WHERE dieu_kien_1 AND (dieu_kien_2 OR dieu_kien_3);