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

Một truy vấn PostgreSQL với 'ANY' không hoạt động

Bạn muốn sử dụng ALL , không phải ANY . Từ hướng dẫn sử dụng tốt:

9.21.3. ANY / SOME (mảng)

Toán tử biểu thức
expression operator ANY (array expression)

[...] Biểu thức bên trái được đánh giá và so sánh với từng phần tử của mảng bằng cách sử dụng toán tử đã cho , phải mang lại kết quả Boolean. Kết quả của ANY là "true" nếu nhận được bất kỳ kết quả true nào.

Vì vậy, nếu chúng ta nói điều này:

1 != any(array[1,2])

thì chúng ta sẽ nhận được true vì (1 != 1) or (1 != 2) là đúng. ANY về cơ bản là một OR nhà điều hành. Ví dụ:

=> select id from (values (1),(2),(3)) as t(id) where id != any(array[1,2]);
 id 
----
  1
  2
  3
(3 rows)

Nếu chúng ta nhìn vào ALL , chúng tôi thấy:

9.21.4. TẤT CẢ (mảng)

expression operator ALL (array expression)

[...] Biểu thức bên trái được đánh giá và so sánh với từng phần tử của mảng bằng cách sử dụng toán tử đã cho , phải mang lại kết quả Boolean. Kết quả của ALL là "đúng" nếu tất cả các so sánh đều mang lại kết quả đúng ...

vì vậy nếu chúng ta nói điều này:

1 != all(array[1,2])

thì chúng ta sẽ nhận được sai vì (1 != 1) and (1 != 2) là false và chúng tôi thấy rằng ALL về cơ bản là một AND nhà điều hành. Ví dụ:

=> select id from (values (1),(2),(3)) as t(id) where id != all(array[1,2]);
 id 
----
  3
(1 row)

Nếu bạn muốn loại trừ tất cả các giá trị trong một mảng, hãy sử dụng ALL :

select "Ticket_id"
from "Tickets"
where "Status" = 1
  and "Ticket_id" != all(array[1,2,3])
limit 6


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cấp quyền cho người dùng đối với bất kỳ bảng mới nào được tạo trong postgresql

  2. PostgreSQL:NGOẠI KHÓA / ON XÓA CASCADE

  3. Lưu trữ json, jsonb, hstore, xml, enum, ipaddr, v.v. không thành công với cột x thuộc kiểu json nhưng biểu thức có kiểu ký tự khác nhau

  4. Kết nối PostgreSQL Pooling với PgBouncer

  5. Làm cách nào để gửi một số yêu cầu http từ hàm postgresql hoặc trình kích hoạt