PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để thực hiện truy vấn LIKE cho khóa jsonb?

Ví dụ của bạn sẽ không hoạt động vì không có truyền ngầm giữa jsonbtext 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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tình huống thất bại PostgreSQL phổ biến nhất

  2. PostgreSQL chạy chậm? Mẹo &Thủ thuật để Truy cập Nguồn

  3. Truy vấn trả về số hàng chính xác

  4. Truy vấn N hàng liên quan cuối cùng trên mỗi hàng

  5. Postgis - Cách làm việc với kiểu dữ liệu 'địa lý' qua JDBC