Cách sử dụng toán tử WHERE IN trong Mysql

Toán tử IN trong MySQL được sử dụng để kiểm tra xem một giá trị có tồn tại trong một danh sách giá trị hoặc trong kết quả của một truy vấn con (subquery) hay không. Cùng unitop tìm hiểu cách sử dụng toán tử IN.

Sử dụng WHERE IN với danh sách giá trị cụ thể

Trong admin của hệ thống website thường có chức năng thao tác đổi trạng thái bài viết sản phẩm với điều kiện id thuộc vào một danh sách các phần tử lựa chọn.

Để tôi lấy một ví dụ:

Tôi có bảng posts dùng lưu danh sách bài viết trong hệ thống, bây giờ tôi muốn cập nhật tất cả các bài viết có id 2, 6, 8 từ trạng thái publish(công khai) thành private(riêng tư).

Để cập nhật tất cả các bài viết có ID 2, 6 và 8 từ trạng thái “publish” thành “private” trong bảng posts, bạn có thể sử dụng câu lệnh SQL UPDATE kết hợp với WHERE IN.

Dưới đây là đoạn code minh họa:

UPDATE posts
SET status = 'private'
WHERE id IN (2, 6, 8);

Trong đoạn mã này:

  • UPDATE posts: Đây là câu lệnh cập nhật dữ liệu trong bảng posts.
  • SET status = 'private': Chúng ta đặt trạng thái của các bài viết thành “private”.
  • WHERE id IN (2, 6, 8): Điều này xác định rằng chỉ các bài viết có ID là 2, 6 và 8 sẽ bị ảnh hưởng bởi câu lệnh cập nhật.

Sử dụng WHERE IN với sub query

Hãy giả sử bạn đang làm việc với một cửa hàng trực tuyến và bạn có hai bảng dữ liệu quan trọng:

Bảng “categories” (danh mục sản phẩm): Bảng này chứa thông tin về các danh mục sản phẩm. Ví dụ, bạn có các danh mục như ‘Electronics’, ‘Clothing’, ‘Furniture’, và ‘Books’.

+------------+----------------+
| category_id | name         |
+------------+----------------+
| 1          | Electronics   |
| 2          | Clothing      |
| 3          | Furniture     |
| 4          | Books         |
+------------+----------------+

Bảng “products” (sản phẩm): Bảng này chứa thông tin về các sản phẩm, bao gồm product_id, product_name, và category_id để liên kết với danh mục sản phẩm tương ứng.

+------------+------------------+------------+
| product_id | product_name     | category_id |
+------------+------------------+------------+
| 1          | Smartphone       | 1          |
| 2          | Laptop           | 1          |
| 3          | T-shirt          | 2          |
| 4          | Chair            | 3          |
| 5          | Novel            | 4          |
+------------+------------------+------------+

Bây giờ, giả sử bạn muốn lấy danh sách tất cả các sản phẩm thuộc danh mục ‘Electronics’. Để làm điều này, bạn có thể sử dụng một truy vấn SQL với toán tử WHERE IN và một truy vấn con (subquery). Dưới đây là ví dụ cụ thể:

SELECT * 
FROM products 
WHERE category_id IN (SELECT category_id FROM categories WHERE name = 'Electronics');

Giải thích các bước và cách nó hoạt động:

  1. Trong truy vấn con (subquery) bên trong dấu ngoặc đơn, SELECT category_id FROM categories WHERE name = 'Electronics' trước tiên lấy category_id từ bảng “categories” nơi name là ‘Electronics’. Điều này trả về danh mục ID tương ứng, trong trường hợp này, là 1.
  2. Tiếp theo, truy vấn chính là SELECT * FROM products, nơi chúng ta muốn lấy tất cả thông tin về sản phẩm từ bảng “products”.
  3. Trong phần WHERE, chúng ta sử dụng toán tử IN để so sánh category_id của các sản phẩm trong bảng “products” với danh sách category_id thu được từ truy vấn con. Kết quả là các sản phẩm thuộc danh mục ‘Electronics’ sẽ được chọn và hiển thị trong kết quả.

Kết quả của truy vấn sẽ là danh sách tất cả các sản phẩm thuộc danh mục ‘Electronics’.

Tổng kết

Trong bài viết này bạn đã được chia sẻ cách sử dụng toán tử IN trong cấu trúc WHERE IN SQL. Việc của bản ngay bây giờ thực hành cấu trúc này để áp dụng toán tử IN vào quá trình học lập trình php và xây dựng dự án của mình.

*** Nếu bạn đang có ý định học Php Mysql để chuẩn bị cho việc làm, nhưng cảm thấy bối rối và không biết bắt đầu từ đâu hoặc làm thế nào để đáp ứng nhu cầu tuyển dụng và kiếm được thu nhập, thì hãy khám phá chương trình học “PHP Master” tại https://unitop.vn.

Tại đây, bạn sẽ tìm thấy một lộ trình học bài bản và được hỗ trợ, kèm cặp một cách chặt chẽ thông qua một nhóm kín độc quyền đến khi bạn bắt đầu làm việc thực tế với mức thu nhập 8-30tr/tháng.

Đề xuất cho bạn

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Tặng Ebook chia sẻ kinh nghiệm học lập trình web đi làm cho người mới bắt đầu!

Đây là tấm bản đồ chia sẻ lại cách học lập trình web đi làm đã giúp nhiều học trò của unitop kiếm được thu nhập từ 8-30tr mỗi tháng.

Ebook Bí quyết học lập trình web đi làm - Phan Văn Cương - Unitop.vn
0
Bạn đang nghĩ gì? Hãy để lại bình luận tại đâyx
()
x