PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengabaikan tanda tanya sebagai pengganti saat menggunakan PDO dengan PostgreSQL

Ini adalah solusi untuk masalah saya. Ini memecahkan masalah dengan menggunakan fungsi PostgreSQL untuk menggantikan ? operator.

Saya tidak terlalu menyukainya karena tidak membuat PDO lebih sesuai dengan PostgreSQL. Tapi saya tidak menemukan solusi nyata.

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

Dan sekarang saya dapat menggunakan kueri:

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

Solusinya disarankan oleh RhodiumToad yang luar biasa dari freenode #postgresql

Sunting

Seperti yang disarankan @Abelisto, tidak perlu membuat fungsi di atas sebagai jsonb_exists(jsonb, text) adalah 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. Kesalahan SYSCALL SSL Postgres:EOF terdeteksi dengan python dan psycopg

  2. Audit data dinamis dengan pemicu PostgreSQL

  3. Perbarui beberapa baris dalam tabel dari tabel lain saat kondisinya ada

  4. Psycopg2 melaporkan kesalahan pg_hba.conf

  5. Ubah waktu menjadi detik di PostgreSQL