Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Nội dung được viết bởi G-LEARNING

Mệnh đề WHERE là gì?

Như chúng ta đã biết, câu lệnh SELECT trả về tất cả các kết quả từ bảng cơ sở dữ liệu được truy vấn. Tuy nhiên đôi lúc chúng ta muốn hạn chế kết quả truy vấn trong một điều kiện cụ thể. Mệnh đề WHERE của SQL có ích trong các tình huống như vậy.

Cú pháp của mệnh đề WHERE

Cú pháp cơ bản của mệnh đề WHERE khi được sử dụng trong câu lệnh SELECT như sau:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Trong đó:

  • “SELECT * FROM tableName” là câu lệnh SELECT chuẩn
  • “WHERE” là từ khóa giới hạn kết quả truy vấn và “condition” là bộ lọc áp dụng cho kết quả. “condition” có thể là phạm vi, giá trị đơn hoặc một truy vấn con.

Trước khi xem xét các ví dụ, bạn có thể tải dữ liệu myflixdb tại đây để thực hiện trong MySQL:

https://drive.google.com/uc?export=download&id=0B_vqvT0ovzHccjhtdGlrZ0MtZ0k

Giả sử chúng ta muốn lấy thông tin cá nhân của thành viên trong bảng members với mã số thành viên là 1. Câu lệnh sau sẽ giúp thực hiện điều đó:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Thực thi câu lệnh trên cho dữ liệu “myflixdb” trên MySQL sẽ cho ra kết quả sau:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Mệnh đề WHERE kết hợp với toán tử logic AND

Mệnh đề WHERE khi được sử dụng cùng với toán tử logic AND chỉ được thực thi nếu tất cả các tiêu chí lọc chỉ định được đáp ứng.

Xem xét ví dụ sau – Giả sử chúng ta muốn lấy danh sách tất cả các phim có category_id là 2 và phát hành vào năm 2008. Thực hiện câu lệnh sau:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Chạy câu lệnh trên trong MySQL với dữ liệu “myflixdb” sẽ cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Mệnh đề WHERE kết hợp với toán tử logic OR

Mệnh đề WHERE khi kết hợp với toán tử logic OR chỉ được thực thi khi có bất kì hoặc toàn bộ tiêu chí lọc chỉ định được đáp ứng.

Kịch bản sau đây giúp chúng ta có được danh sách tất cả các phim có category_id là 1 hoặc 2:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Câu truy vấn trên cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Mệnh đề WHERE kết hợp với từ khóa IN

Mệnh đề WHERE khi sử dụng kết hợp với từ khóa IN chỉ ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa IN. IN giúp giảm số lượng của mệnh đề OR mà bạn phải sử dụng thay vào đó. 

Truy vấn sau đây cung cấp các hàng có membership_number là 1,2 hoặc 3:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Thực thi câu lệnh trên sẽ cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Mệnh đề WHERE kết hợp với từ khóa NOT IN

Mệnh đề WHERE khi sử dụng kết hợp với từ khóa NOT IN thì KHÔNG ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa NOT IN. 

Câu truy vấn sau cung cấp các hàng có membership_number không phải là 1,2 hoặc 3:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Thực hiện câu truy vấn trên cho “myflixdb” trong MySQL cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Mệnh đề WHERE kết hợp với toán tử so sánh

Có thể sử dụng các toán tử so sánh nhỏ hơn (<), lớn hơn (>), bằng (=), không bằng (<>) với mệnh đề WHERE.

Bằng (=)

Kịch bản sau đây nhận được danh sách tất cả các thành viên nữ từ bảng members bằng cách sử dụng toán tử so sánh:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Chạy câu lệnh trên bằng MySQL sẽ cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Lớn hơn (>)

Câu truy vấn sau sẽ nhận được tất cả các khoản thanh toán lớn hơn 2000 từ bảng payments. 

SELECT * FROM `payments` WHERE `amount_paid` > 2000;

Thực thi câu lệnh trên cho ra kết quả:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Không bằng (<>)

Kịch bản sau nhận được danh sách tất cả các phim có category_id khác 1:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Chúng ta có kết quả được hiển thị sau khi chạy câu lệnh trên là:

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL và các toán tử AND, OR, IN, NOT IN

Tổng kết

  • Mệnh đề WHERE trong SQL được sử dụng để hạn chế số lượng hàng bị ảnh hưởng bởi câu lệnh SELECT, UPDATE hoặc DELETE
  • Mệnh đề WHERE có thể được sử dụng cùng với các toán tử logic như là AND và OR, toán tử so sánh như là =, >,<,…
  • Khi sử dụng WHERE cùng với toán tử logic AND, tất cả các tiêu chí phải được đáp ứng
  • Khi sử dụng WHERE với toán tử logic OR, bất kì tiêu chí nào cũng phải được đáp ứng.
  • Từ khóa IN được sử dụng để chọn những hàng khớp với danh sách các giá trị.

Ngoài ra bạn có thể truy cập ngay https://gitiho.com/ để tìm hiểu thêm nhiều các khóa học hay về tin học văn phòng: Excel, Power Point, lập trình VBA, lập trình C#, SQL, thiết kế đồ họa… Có rất nhiều ưu đãi hấp dẫn đang chờ bạn.

Các bạn có thể tham khảo thêm các bài viết khác về cách sử dụng MySQL:

Hướng dẫn sử dụng câu lệnh SELECT trong MySQL qua các ví dụ

Hướng dẫn câu lệnh DELETE trong MySQL và ví dụ minh họa

Hướng dẫn câu lệnh UPDATE trong MySQL và các ví dụ

Đánh giá bài viết này

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông