sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu provést dotaz LIKE pro klíč jsonb?

Váš příklad by neměl fungovat, protože mezi jsonb není implicitní přetypování a text typy. Odesílání můžete vynutit:

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

Není to čisté řešení. Lepší je rozbalení json a filtrování rozbalených dat pomocí laterálního spojení

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



  1. Oracle sql if podmínka then select statement1 else select statement2

  2. Spravujte souběžnost transakcí pomocí zámků na serveru SQL Server

  3. Cpp-Mysql nedefinovaný odkaz na chybu „funkce“.

  4. Jak mohu vytvořit jedinečný index v Oracle, ale ignorovat hodnoty null?