PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como evitar que o PDO interprete um ponto de interrogação como um espaço reservado?


Use o formulário de chamada de função. De acordo com os catálogos do sistema, o hstore ? operador usa o exist função:
regress=# select oprname, oprcode from pg_operator where oprname = '?';
 oprname | oprcode 
---------+---------
 ?       | exist
(1 row)

então você pode escrever:
SELECT * FROM tbl WHERE exist(hst,'foo');

(Pessoalmente, não sou um grande fã do design e documentação centrados no operador do hstore, acho que ele descarta as propriedades úteis de autodocumentação de uma interface baseada em função sem nenhum benefício real e geralmente uso suas chamadas de função em vez de seus operadores. Apenas porque você pode definir operadores não significa que você deva.)