PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann verhindert werden, dass PDO ein Fragezeichen als Platzhalter interpretiert?

Verwenden Sie das Funktionsaufrufformular. Laut den Systemkatalogen ist hstore ? Operator verwendet den exist Funktion:

regress=# select oprname, oprcode from pg_operator where oprname = '?';
 oprname | oprcode 
---------+---------
 ?       | exist
(1 row)

so können Sie schreiben:

SELECT * FROM tbl WHERE exist(hst,'foo');

(Persönlich bin ich kein großer Fan des bedienerzentrierten Designs und der Dokumentation von hstore, ich denke, es verwirft die nützlichen selbstdokumentierenden Eigenschaften einer funktionsbasierten Schnittstelle ohne wirklichen Nutzen, und ich verwende normalerweise eher seine Funktionsaufrufe als seine Operatoren. Nur weil Sie Operatoren definieren können, heißt das nicht, dass Sie es tun sollten.)