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

JDBC - chọn nơi cột là NULL

Không có gì là = NULL . Nếu bạn nhập select * from test where value=NULL trở thành người đánh giá truy vấn tương tác, bạn sẽ không nhận lại được gì. JDBC không viết lại biểu thức của bạn, nó chỉ thay thế các giá trị.

Bạn phải sử dụng truy vấn bằng is toán tử thay thế:

PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();

Bạn đã nói rằng bạn mong đợi JDBC đủ "thông minh" để làm điều đó cho bạn, nhưng điều đó sẽ vi phạm lớn trong việc tách biệt các mối quan tâm. Bạn cũng có thể muốn để có một tham số trong truy vấn của bạn bằng cách sử dụng = mà bạn đặt NULL biết rằng mối quan hệ đó sẽ không bao giờ đánh giá true (rất có thể là một phần của tập hợp các điều kiện lớn hơn).



  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 nhật giá trị khóa trong mảng đối tượng jsonb

  2. Ổ cắm miền PostgreSQL UNIX so với ổ cắm TCP

  3. Chế độ xem vật chất hóa PostgreSQL

  4. toán tử @> trong postgres làm gì?

  5. Sự khác biệt giữa LIKE và ~ trong Postgres