Hệ quản trị CSDL MySQL - Toán tử IN
Truy xuất dữ liệu khi thỏa một trong số các giá trị
Từ khóa IN dùng để truy xuất dữ liệu khi giá trị của dữ liệu là một trong số các giá trị được nêu.
Cú pháp
Từ khóa IN cho phép bạn xác định nhiều giá trị trong một mệnh đề WHERE.
SELECT *
FROM name_table
WHERE name_column IN (value1, value2, value3);
Một số ví dụ
Chúng ta có một bảng sinh_vien như sau:
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Thanh Nhan | Nam | 19 | Can Tho |
Pham Thu Huong | Nu | 20 | Vinh Long |
Nguyen Nhu Ngoc | Nu | 20 | Soc Trang |
Bui Thanh Bao | Nam | 19 | Soc Trang |
Le My Nhan | Nu | 22 | Can Tho |
Tan Thuc Bao | Nam | 35 | An Giang |
Trinh Giao Kim | Nam | 44 | Bac Lieu |
Ví dụ 1
Truy xuất những sinh viên có tuổi là 19, 22, 35
SELECT *
FROM sinh_vien
WHERE Age IN (19, 22, 35);
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Gender | Age | City |
---|---|---|---|
Nguyen Thanh Nhan | Nam | 19 | Can Tho |
Bui Thanh Bao | Nam | 19 | Soc Trang |
Le My Nhan | Nu | 22 | Can Tho |
Tan Thuc Bao | Nam | 35 | An Giang |
Ví dụ 2
Lấy họ tên và tỉnh thành của những sinh viên có tuổi KHÔNG là 19, 22
SELECT Full_name, City
FROM sinh_vien
WHERE Age NOT IN (19, 22);
Lưu ý: NOT IN có nghĩa là KHÔNG nằm trong số các giá trị được chỉ định.
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | City |
---|---|
Pham Thu Huong | Vinh Long |
Nguyen Nhu Ngoc | Soc Trang |
Tan Thuc Bao | An Giang |
Trinh Giao Kim | Bac Lieu |
Ví dụ 3 (nâng cao)
Truy xuất họ tên, tuổi, tỉnh thành của những sinh viên có tuổi là 19, 20 và sống ở CanTho, Soc Trang
SELECT Full_name, Age, City
FROM sinh_vien
WHERE (Age IN (19, 20)) AND (City IN ("Can Tho","Soc Trang"));
Sau khi thực thi, MySQl trả về một bảng kết quả như dưới đây:
Full_name | Age | City |
---|---|---|
Nguyen Thanh Nhan | 19 | Can Tho |
Nguyen Nhu Ngoc | 20 | Soc Trang |
Bui Thanh Bao | 19 | Soc Trang |