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

Cách bỏ qua dấu hỏi làm trình giữ chỗ khi sử dụng PDO với PostgreSQL

Đây là một giải pháp cho vấn đề của tôi. Nó giải quyết vấn đề bằng cách sử dụng hàm PostgreSQL để thay thế ? nhà điều hành.

Tôi không thực sự thích nó vì nó không làm cho PDO tuân thủ PostgreSQL nhiều hơn. Nhưng tôi không tìm thấy giải pháp thực sự nào.

CREATE FUNCTION json_key_exists(JSONB,TEXT) RETURNS BOOLEAN LANGUAGE SQL STABLE AS $f$
    SELECT $1 ? $2
$f$;

Và bây giờ tôi có thể sử dụng truy vấn:

SELECT * FROM post WHERE json_key_exists(locations, :location);

Giải pháp được đề xuất bởi RhodiumToad tuyệt vời từ freenode #postgresql

Chỉnh sửa

Như @Abelisto đã đề xuất, không cần tạo hàm ở trên dưới dạng jsonb_exists(jsonb, text) là avialabe



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có nên thêm một cột kiểu để thiết kế kế thừa trong postgreSQL không?

  2. Cách đối phó với 'org.postgresql.util.PSQLException:Không có giá trị nào được chỉ định cho tham số 1'?

  3. Cách thích hợp để chọn và cập nhật SQL

  4. Toán tử IN so với BẤT KỲ trong PostgreSQL

  5. Điều gì xác định nếu rails bao gồm id::serial trong một định nghĩa bảng?