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

Rails4を使用したJSONデータ型のPostgres演算子

    この応答にはPostgres9.4が必要です。サンプルのデータ構造には次のものがあります。

    2.1.1 :202 > r.column_data
    => {"data1"=>[1, 2, 3], "data2"=>"data2-3", "array"=>[{"hello"=>1}, {"hi"=>2}]}
    

    残念ながら、配列内の要素の存在をチェックすることは、(私の知る限り)文字列値でのみ機能します。次のデータがあれば、問題なくクエリを実行できます。

    {"data1"=>['1', '2', '3'], "data2"=>"data2-3"}
    

    これをテストしてみましょう。注:ペイロードはjsonbです。 jsonフィールドとしては機能しません。

    Dynamic.create(payload: {"data1"=>['1', '2', '3'], "data2"=>"data2-3"})
    Dynamic.where("payload -> 'data1' ? '1'").first
    => #<Dynamic id: 8, payload: {"data1"=>["1", "2", "3"], "data2"=>"data2-3"}, created_at: "2014-12-24 02:30:31", updated_at: "2014-12-24 02:30:31">
    

    詳細については、この記事>




    1. Oracle WITH CLAUSEが機能していませんか?

    2. Oracleトリガーの挿入/更新

    3. mysqli_queryを使用したajaxフォームの検証

    4. OracleSQLの日付をLongに、またはその逆。