PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lỗi khi sử dụng đối sánh mẫu không giống bất kỳ mẫu nào trong PostgreSQL

Thông thường tôi sử dụng đối sánh mẫu bằng cách sử dụng từ khóa "not in".

SELECT kolom1 from tabel where kategori not in ('A', 'B')

Sau đó, tôi đã cố gắng sử dụng từ khóa "không giống bất kỳ"

SELECT kolom1 from tabel where kategori not like any (array['A', 'B'])

Tôi nghĩ rằng kết quả sẽ giống nhau. Nhưng sau khi chạy kết quả khác hẳn. Tôi tò mò tại sao các kết quả lại khác nhau và sau khi tôi tìm hiểu, cách hoạt động của bất kỳ từ khóa nào là nó sẽ trả về true nếu một trong các yếu tố được đáp ứng. Vì vậy, nếu phần tử A được so sánh với từ khóa không giống bất kỳ, nó sẽ đúng vì nó đáp ứng tiêu chí, không phải một trong các phần tử trong mảng, cụ thể là B. Và ngược lại. Trong khi kết quả mong muốn không phải là phần tử A cũng không phải phần tử B. Để trả lời vấn đề này, từ khóa "không giống như tất cả" được sử dụng.

SELECT kolom1 from tabel where kategori not like all (array['A', 'B'])

Thẩm quyền giải quyết
stackoverflow


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgFincore 1.2, một phần mở rộng PostgreSQL

  2. xây dựng truy vấn động SQL với thư viện python psycopg2 và sử dụng các công cụ loại chuyển đổi tốt

  3. Phương ngữ cần được cung cấp rõ ràng kể từ v4.0.0

  4. Cách cập nhật nhiều cột trong PostgreSQL

  5. Lỗi:Cột không tồn tại