sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLでPDOを使用するときにプレースホルダーとして疑問符を無視する方法

    これは私の問題の回避策です。 PostgreSQL関数を使用して?を置き換えることにより、問題を解決します。 演算子。

    PDOがPostgreSQLに準拠しなくなるため、あまり好きではありません。しかし、本当の解決策は見つかりませんでした。

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

    そして今、私はクエリを使用することができます:

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

    回避策は、freenode #postgresql

    のすばらしいRhodiumToadによって提案されました。

    編集

    @Abelistoが提案したように、上記の関数をjsonb_exists(jsonb, text)として作成する必要はありません。 avialabeです



    1. PostgreSQLに存在しない場合にのみテーブルを作成する方法

    2. 単一のテーブルにMergeステートメントを使用する

    3. Dockerコンテナでデータベースを実行する際のパフォーマンスの問題

    4. カーソルでフィールド値を取得する