sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur förhindrar man att SUB tolkar ett frågetecken som en platshållare?

Använd funktionsanropsformuläret. Enligt systemkatalogerna är hstore ? operatorn använder exist funktion:

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

så du kan skriva:

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

(Personligen är jag inte ett stort fan av hstores operatörscentrerade design och dokumentation, jag tror att den förkastar de användbara självdokumenterande egenskaperna hos ett funktionsbaserat gränssnitt utan någon verklig fördel och jag använder vanligtvis dess funktionsanrop snarare än dess operatörer. Bara eftersom du kan definiera operatorer betyder det inte att du borde göra det.)



  1. Hur hittar man de tre högsta lönerna i emp table i oracle?

  2. PgBouncer 1.7 – "Färger varierar efter uppståndelse"

  3. MySQL-prestanda:Hur man utnyttjar MySQL-databasindexering

  4. Hur man skapar en sekvens om den inte finns