Nội dung chính
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ơ bản của mệnh đề WHERE khi được sử dụng trong câu lệnh SELECT như sau:
Trong đó:
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 đó:
Thực thi câu lệnh trên cho dữ liệu “myflixdb” trên MySQL sẽ cho ra kết quả sau:
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:
Chạy câu lệnh trên trong MySQL với dữ liệu “myflixdb” sẽ cho ra kết quả:
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:
Câu truy vấn trên cho ra kết quả:
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:
Thực thi câu lệnh trên sẽ cho ra kết quả:
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:
Thực hiện câu truy vấn trên cho “myflixdb” trong MySQL cho ra kết quả:
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.
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:
Chạy câu lệnh trên bằng MySQL sẽ cho ra kết quả:
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ả:
Kịch bản sau nhận được danh sách tất cả các phim có category_id khác 1:
Chúng ta có kết quả được hiển thị sau khi chạy câu lệnh trên là:
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ụ
Nội dung liên quan