Bài MySQL 15: Toán tử AND và OR trong mysql

Xin chào các bạn, trong bài học ngày hôm nay mình sẽ hướng dẫn các bạn sử dụng toán tử AND và OR trong mysql để kết hợp nhiều biểu thức Boolean với nhau trong một biểu thức điều kiện.

Giới thiệu toán tử AND trong mysql

Toán tử AND trong mysql là toán tử logic kết hợp hai hoặc nhiều biểu thức Boolean và trả về true chỉ khi cả hai biểu thức được đánh giá là true. Toán tử AND trả về false nếu một trong hai biểu thức được đánh giá là false.

Cú pháp

lệnh and và or mysql

Dưới đây mình sẽ minh họa cho các bạn kết quả của toán tử AND khi kết hợp với true, false và null.

TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

Toán tử AND thường được sử dụng trong mệnh đề WHERE của câu lệnh SELECTUPDATEDELETE để tạo thành các biểu thức Boolean. Toán tử AND cũng được sử dụng trong các điều kiện nối giữa lệnh INNER JOIN và LEFT JOIN.

Khi đánh giá một biểu thức có toán tử AND, MySQL sẽ đánh giá các phần còn lại của biểu thức cho đến khi nó có thể xác định kết quả. Chức năng này được gọi là đánh giá ngắn mạch (short-circuit).

Ví dụ:

Lưu ý rằng trong MySQL, số 0 được coi là false.

MySQL chỉ đánh giá phần đầu tiên 1 = 0 của biểu thức 1 = 0 AND 1 / 0. Bởi vì biểu thức 1 = 0 trả về false, MySQL có thể kết luận kết quả của toàn bộ biểu thức, là false. MySQL sau đó không đánh giá phần còn lại của biểu thức là 1/0.

Ví dụ sử dụng toán tử AND trong MySQL

Đầu tiên các bạn hãy tạo môt table employees đơn giản:

Đoạn code dưới đây sẽ lấy ra nhân viên mà có last_name là manh và address ở mydinh.

lệnh and trong mysql

Với toán tử AND, bạn có thể kết hợp nhiều hơn hai biểu thức Boolean. Ví dụ: truy vấn sau trả về nhân viên có first_name là namlast_name là do và address là ha noi.

Giới thiệu toán tử OR trong mysql

Toán tử OR trong mysql dùng để kết hợp các biểu thức Boolean giúp lọc kết quả trả về, nó sẽ trả về true nếu một trong hai điều kiện là đúng.

Cú pháp

Cả boolean_expression_1 và boolean_expression_2 là các biểu thức Boolean trả về true, false hoặc NULL.

Bảng sau đây cho thấy kết quả trả về của toán tử OR.

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

MySQL sử dụng đánh giá short_curcuit cho toán tử OR. Nói cách khác, MySQL sẽ dừng các phần còn lại của câu lệnh khi nó đã có thể xác định kết quả.

Ví dụ:

Bởi vì biểu thức 1 = 1 luôn luôn trả về true nên MySQL sẽ không đánh giá biểu thức 1 / 0. Nếu nó chạy tiếp câu lệnh đó thì nó đã phát sinh lỗi chia cho 0.

 

Mời bạn tham khảo các  bài viết liên quan Mysql:

Toán tử ưu tiên

Khi bạn sử dụng nhiều toán tử logic trong một biểu thức, MySQL sẽ đánh giá các toán tử OR sau toán tử AND. Điều này được gọi là sự ưu tiên toán tử.

Toán tử ưu tiên xác định thứ tự đánh giá của các toán tử. MySQL đánh giá toán tử có ưu tiên cao hơn trước tiên.

Ví dụ:

hướng dẫn cách dùng and trong mysql

Cách nó hoạt động:

  • Đầu tiên, MySQL đánh giá toán tử AND, do đó biểu thức false AND false trả về false.
  • Thứ hai, MySQL đánh giá toán tử OR do đó biểu thức true OR false trả về true.

Để thay đổi thứ tự đánh giá, bạn sử dụng dấu ngoặc đơn, ví dụ:

Ví dụ về toán tử OR trong mysql

Chúng ta sẽ tiếp tục sử dụng bảng employees cho ví dụ về toán tử OR.

Ví dụ: để có được nhân viên có địa chỉ tại ha noi hoặc thanh hoa, bạn sử dụng toán tử OR trong mệnh đề WHERE như sau:

and in mysql

Kết luận

Như vậy trong bài học ngày hôm nay mình đã hướng dẫn các bạn sử dụng toán tử AND và OR trong mysql để lọc kết quả trả về trong biểu thức điều kiện.

Chúc các bạn học tập tốt!