Điều khoản PostgreSQL IN

Dieu Khoan Postgresql In



Có rất nhiều mệnh đề mà bạn có thể sử dụng trong PostgreSQL. Mệnh đề IN là một trong những mệnh đề này và nó có rất nhiều lợi ích khi bạn hiểu cách sử dụng nó, đặc biệt là khi kết hợp với mệnh đề WHERE. Mệnh đề IN hoạt động chủ yếu với câu lệnh SELECT để lọc cách bạn muốn truy vấn thực thi. Khi được thực thi, mệnh đề IN sẽ kiểm tra danh sách đã chỉ định để xem liệu nó có khớp với tiêu chí hay không và đưa ra các giá trị khớp.

Hiểu cách làm việc với mệnh đề IN của PostgreSQL

Trong PostgreSQL, bạn sử dụng mệnh đề IN với mệnh đề WHERE để lọc đầu ra bằng cách kiểm tra danh sách các giá trị và kết quả là giá trị Boolean.

Đây là cú pháp để sử dụng:







giá trị IN (giá trị1, giá trị2, giá trị_n);

Cú pháp đã cho lấy giá trị và kiểm tra nó với value1, value2 và value_n. Sau đó nó trả về Boolean nếu có kết quả khớp. Danh sách các giá trị cần kiểm tra có thể thuộc bất kỳ loại chữ nào, bao gồm cả chuỗi và số nguyên. Ngoài ra, bạn có thể tạo một truy vấn con như câu lệnh SELECT.



Hãy cùng thảo luận về các cách khác nhau để sử dụng toán tử PostgreSQL IN.



1. Làm việc với truy vấn con

Như chúng tôi đã đề cập trước đó, giá trị cần kiểm tra có thể là truy vấn phụ trích xuất các giá trị bằng cách sử dụng câu lệnh truy vấn, chẳng hạn như CHỌN. Bằng cách này, bạn có thể truy vấn một bảng để kiểm tra các giá trị của một cột nhất định. Hãy sử dụng bảng sau cho ví dụ của chúng tôi:





Giả sử chúng ta muốn kiểm tra tất cả các khách hàng có “order_id” có thể là bất kỳ giá trị nào được chỉ định trong phần truy vấn. Chúng tôi thêm giá trị đích làm phần đầu tiên của câu lệnh, sau đó sử dụng mệnh đề WHERE với mệnh đề IN để tạo truy vấn.



Đây là cách truy vấn của chúng tôi xuất hiện:

PostgreSQL kiểm tra cột “order_id” trong bảng “customers” và trả về tất cả các bản ghi có “order_id” khớp với bất kỳ bản ghi nào mà chúng tôi đã chỉ định trong ngoặc.

Trong trường hợp đầu tiên, chúng tôi đã sử dụng trường hợp danh sách các giá trị nguyên. Chúng tôi cũng có thể kiểm tra các chuỗi. Lưu ý rằng nếu tất cả các chuỗi bạn chỉ định không khớp với giá trị đích thì không có gì được trả về. Ví dụ sau chứa một số chuỗi không có trong bảng của chúng tôi. Những chuỗi như vậy sẽ bị bỏ qua và chỉ những chuỗi phù hợp đó mới được hiển thị trong kết quả đầu ra sau:

2. Làm việc với IN(SELECT)

Đôi khi, việc chỉ định danh sách giá trị theo cách thủ công có thể không hoạt động. Bạn có thể chọn sử dụng câu lệnh CHỌN để tìm nạp danh sách các giá trị từ bảng của mình và sử dụng chúng để kiểm tra giá trị đích. Khi thêm bảng sau vào cơ sở dữ liệu, chúng ta có thể kết hợp nó với bảng “khách hàng” trước đó để tạo truy vấn con:

Giả sử chúng ta chỉ muốn hiển thị các bản ghi từ bảng “orders” nếu giá trị đích (order_id) nằm trong bảng “customers”. Ở đây, cột “customers.order_id” là danh sách các giá trị của chúng tôi và chúng tôi kiểm tra các giá trị của nó với các giá trị trên cột “orders.order_id”.

Trong trường hợp này, chỉ có ba mục nhập khớp với tìm kiếm và đó là những gì chúng tôi nhận được làm đầu ra cho mệnh đề PostgreSQL IN(SELECT) của mình.

3. Làm việc với mệnh đề NOT IN PostgreSQL

Sử dụng lệnh trước, chúng ta có thể chọn hiển thị các giá trị khác không khớp với giá trị đích. Để làm được điều đó, chúng ta làm ngược lại với những gì mệnh đề IN thực hiện. Do đó, chúng ta phủ nhận lệnh NOT IN.

Đây là cách chúng tôi viết lệnh mới của mình:

Lưu ý rằng chúng ta nhận được kết quả đầu ra khác với kết quả chúng ta nhận được trong ví dụ 2. Đó là vì chúng ta đang làm việc với mệnh đề NOT IN thay vì IN.

Lý tưởng nhất là bạn có thể thêm NOT bất cứ khi nào bạn muốn phủ nhận kết quả mà bạn nhận được bằng mệnh đề PostgreSQL IN. Các ứng dụng là vô tận. Khi bạn muốn kiểm tra các giá trị và xem các giá trị đó khớp một cách nhanh chóng, mệnh đề IN chính là người bạn tốt nhất của bạn.

Phần kết luận

Mệnh đề IN hoạt động với mệnh đề WHERE để kiểm tra giá trị đích so với danh sách các giá trị. Mệnh đề IN trả về một Boolean xác nhận xem giá trị đích có khớp với danh sách các giá trị mà bạn đã chỉ định hay không. Bạn có thể chỉ định các giá trị dưới dạng chữ hoặc sử dụng câu lệnh SELECT để tạo truy vấn con để sử dụng. Chúng tôi đã đưa ra ba trường hợp về cách bạn có thể sử dụng mệnh đề PostgreSQL IN. Hy vọng rằng điều đó đã giúp bạn hiểu rõ hơn về cách làm việc với mệnh đề PostgreSQL IN.