PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zignorować znak zapytania jako symbol zastępczy podczas używania PDO z PostgreSQL?

To jest obejście mojego problemu. Rozwiązuje problem za pomocą funkcji PostgreSQL do zastąpienia ? operatora.

Nie podoba mi się to, ponieważ nie zapewnia większej zgodności PDO z PostgreSQL. Ale nie znalazłem prawdziwego rozwiązania.

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

A teraz mogę użyć zapytania:

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

Rozwiązanie zostało zasugerowane przez fantastyczny RhodiumToad z freenode #postgresql

Edytuj

Jak zasugerował @Abelisto, nie ma potrzeby tworzenia powyższej funkcji jako jsonb_exists(jsonb, text) jest dostępny



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importowanie spakowanego pliku CSV do PostgreSQL

  2. PostgreSQL dynamicznie modyfikujący pola w NOWYM rekordzie w funkcji wyzwalacza

  3. Jak ustawić interwałowy format wyjściowy w PostgreSQL?

  4. Błąd w dynamicznej instrukcji PL/PGSQL (funkcje i operatory mogą przyjmować co najwyżej jeden zestaw argumentów)

  5. Spring boot data.sql nie inicjuje danych w Postgresql