sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan forhindrer man BOB i at fortolke et spørgsmålstegn som en pladsholder?

Brug funktionsopkaldsformularen. Ifølge systemkatalogerne er hstore ? operatør bruger exist funktion:

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

så du kan skrive:

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

(Personligt er jeg ikke en stor fan af hstores operatørcentrerede design og dokumentation, jeg tror, ​​at den kasserer de nyttige selvdokumenterende egenskaber ved en funktionsbaseret grænseflade uden nogen reel fordel, og jeg bruger normalt dens funktionskald frem for dens operatører. Bare fordi du kan definere operatorer, betyder det ikke, at du skal.)



  1. Top Open Source-værktøjer til PostgreSQL-migreringer

  2. PostgreSQL-gabfri sekvenser

  3. Sortering af træ med en materialiseret sti?

  4. Sådan krypterer du en lagret procedure i SQL Server