PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как мога да изпълня заявка LIKE за ключ jsonb?

Вашият пример не трябва да работи, защото няма имплицитно прехвърляне между 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL Developer и PostgreSQL

  2. Свържете се с база данни PostgreSQL в Docker контейнер

  3. как да направите подобно търсене в postgresql и node js

  4. Postgresql intarray грешка:недефиниран символ:pfree

  5. Shell скрипт за изпълнение на pgsql команди във файлове