sql >> Database >  >> RDS >> PostgreSQL

Vraagteken negeren als tijdelijke aanduiding bij gebruik van PDO met PostgreSQL

Dit is een oplossing voor mijn probleem. Het lost het probleem op door de PostgreSQL-functie te gebruiken om de ? . te vervangen telefoniste.

Ik vind het niet echt leuk omdat het PDO niet meer conformeert aan PostgreSQL. Maar ik vond geen echte oplossing.

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

En nu kan ik de query gebruiken:

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

De oplossing werd voorgesteld door de fantastische RhodiumToad van freenode #postgresql

Bewerken

Zoals @Abelisto suggereerde, is het niet nodig om de bovenstaande functie te maken als jsonb_exists(jsonb, text) is verkrijgbaar



  1. gem install pg --with-pg-config werkt, bundel mislukt

  2. De AUTO_INCREMENT-waarde van alle tabellen in een MySQL-database bijwerken

  3. mysql-opdracht loopt niet synchroon bij het uitvoeren van insert van bleekselderij

  4. Django model één vreemde sleutel voor veel tabellen