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

jsonbキーに対してLIKEクエリを実行するにはどうすればよいですか?

    jsonbの間に暗黙のキャストがないため、この例は機能しないはずです。 およびtext 種類。キャストを強制できます:

    SELECT '{"this": 1, "this_that": 0, "this_and_that": 5}'::jsonb::text 
                like '%"this%';
    

    それはきれいな解決策ではありません。 jsonをアンパックし、ラテラルジョインを使用してアンパックされたデータをフィルタリングする方がよいでしょう

    postgres=# SELECT key FROM  myjson, lateral jsonb_each_text(j) 
                 WHERE key LIKE 'this\_%';
    ┌───────────────┐
    │      key      │
    ╞═══════════════╡
    │ this_that     │
    │ this_and_that │
    └───────────────┘
    (2 rows)
    



    1. シーケンス値を使用して行を挿入しているときに列が許可されないエラー

    2. SQLクエリヘルプ-結合条件に2つのwhere条件があります

    3. ファイルまたはアセンブリを読み込めませんでした'MySql.Data、Version =6.3.6.0

    4. SQLiteで数値を含まない値を検索する