MySQL Mệnh đề WHERE: AND, OR, IN, NOT IN Ví dụ truy vấn
Mệnh đề WHERE trong MySQL?
đÂU khoản in MySQL là một từ khóa được sử dụng để chỉ định tiêu chí chính xác của dữ liệu hoặc các hàng sẽ bị ảnh hưởng bởi câu lệnh SQL được chỉ định. Mệnh đề WHERE có thể được sử dụng với các câu lệnh SQL như INSERT, UPDATE, SELECT và DELETE để lọc các bản ghi và thực hiện nhiều thao tác khác nhau trên dữ liệu.
Chúng tôi đã xem xét cách truy vấn dữ liệu từ một cơ sở dữ liệu bằng cách sử dụng câu lệnh SELECT trong hướng dẫn trước. Câu lệnh SELECT trả về tất cả kết quả từ bảng cơ sở dữ liệu được truy vấn.
Tuy nhiên, đó là những lúc chúng ta muốn giới hạn kết quả truy vấn ở một điều kiện cụ thể. Mệnh đề WHERE trong SQL rất hữu ích trong những tình huống như vậy.

Cú pháp mệnh đề WHERE
Cú pháp cơ bản của mệnh đề WHERE khi sử dụng trong một MySQL Câu lệnh SELECT WHERE như sau.
SELECT * FROM tableName WHERE condition;
tại ĐÂY
- “CHỌN * TỪ tên bảng” là tiêu chuẩn Câu lệnh SELECT
- "Ở ĐÂU" là từ khóa hạn chế tập kết quả truy vấn chọn lọc của chúng tôi và "tình trạng" là bộ lọc được áp dụng trên kết quả. Bộ lọc có thể là một phạm vi, một giá trị hoặc truy vấn phụ.
Bây giờ chúng ta hãy nhìn vào một ví dụ thực tế.
Giả sử chúng ta muốn lấy thông tin cá nhân của một thành viên từ bảng thành viên có số thành viên là 1, chúng ta sẽ sử dụng đoạn mã sau để thực hiện điều đó.
SELECT * FROM `members` WHERE `membership_number` = 1;
Thực thi đoạn script trên trong MySQL bàn làm việc trên “myflixdb” sẽ tạo ra kết quả sau.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
Mệnh đề WHERE kết hợp với – VÀ HỢP LÝ Operator
Điều kiện WHERE trong MySQL khi sử dụng cùng với toán tử logic AND, chỉ được thực hiện nếu TẤT CẢ các tiêu chí lọc được chỉ định đều được đáp ứng.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Mệnh đề WHERE kết hợp với – OR HỢP LÝ Operator
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Mệnh đề WHERE kết hợp với – IN Từ khóa
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Thực thi đoạn script trên trong MySQL workbench so với “myflixdb” tạo ra kết quả sau.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
Mệnh đề WHERE kết hợp với – KHÔNG VÀO Từ khóa
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Thực thi đoạn script trên trong MySQL workbench so với “myflixdb” tạo ra kết quả sau.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Mệnh đề WHERE kết hợp với – SO SÁNH Operaxoắn
= Tương đương với
SELECT * FROM `members` WHERE `gender` = 'Female';
Thực thi đoạn script trên trong MySQL workbench so với “myflixdb” tạo ra kết quả sau.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Lớn hơn
payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
< > Không bằng
SELECT * FROM `movies` WHERE `category_id`<> 1;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
Tổng kết
- Mệnh đề SQL WHERE được sử dụng để hạn chế số lượng hàng bị ảnh hưởng bởi lệnh SELECT, UPDATE hoặc XÓA truy vấn.
- Điều kiện WHERE trong SQL có thể được sử dụng kết hợp với các toán tử logic như AND và OR, các toán tử so sánh như ,=, v.v.
- Khi sử dụng với AND toán tử logic, tất cả các tiêu chí phải được đáp ứng.
- Khi được sử dụng 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 các hàng khớp với danh sách các giá trị.
Teaser não
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Thực thi đoạn script trên trong MySQL workbench đưa ra kết quả sau.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |