Ví dụ của bạn sẽ không hoạt động vì không có truyền ngầm giữa jsonb
và text
các loại. Bạn có thể thực thi truyền:
SELECT '{"this": 1, "this_that": 0, "this_and_that": 5}'::jsonb::text
like '%"this%';
Nó không phải là giải pháp sạch. Một số cách tốt hơn là giải nén json và lọc dữ liệu đã giải nén bằng phép nối bên
postgres=# SELECT key FROM myjson, lateral jsonb_each_text(j)
WHERE key LIKE 'this\_%';
┌───────────────┐
│ key │
╞═══════════════╡
│ this_that │
│ this_and_that │
└───────────────┘
(2 rows)