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

ビュー内のPostgresqlregexp_matchesは、PHPからクエリを実行すると常にnullを返します

    同じクエリ

    select  e'\\x353078'::bytea;
    

    psqlでさまざまな形式の結果を提供します :

      bytea
    ----------
     \x353078
    

    およびPgAdminIII

      bytea
    ----------
     50x
    

    ドキュメントの場合:

    PgAdmin III(およびPgAdmin4)は、おそらく歴史的な理由から、bytea_outputの値を設定します。 escapeする パラメータのデフォルト値はhexです。 。これは混乱を招く可能性があります(そしてあなたが見ることができるようにそれは導きます)。 pgAdminはパラメータのデフォルト値を変更すべきではないようです。

    アプリケーションのパラメータを変更して、PgAdminの場合と同じ動作を得ることができます:

    set bytea_output to escape;
    

    もちろん、encode()を使用します 良い解決策でもあります。



    1. MacでpgAdmin4を開くときにエラーが発生しました

    2. PostgreSQLを使用する1つのエンティティ用の複数のHibernateシーケンスジェネレータ

    3. SQLクエリの結果をPHPで表示する

    4. mysqlからの大量のデータを処理する