PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa melakukan kueri LIKE untuk kunci jsonb?

Contoh Anda seharusnya tidak berfungsi karena tidak ada pemeran implisit di antara jsonb dan text jenis. Anda dapat menerapkan transmisi:

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

Ini bukan solusi bersih. Beberapa yang lebih baik adalah membongkar json, dan memfilter data yang belum dibongkar dengan penggabungan lateral

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. Berikan nama skema dan nama tabel secara dinamis di FROM dalam kueri pemilihan di Postgres

  2. Cara mengatur beberapa variabel konteks untuk pengguna/koneksi

  3. Bagaimana cara mengizinkan hanya satu baris untuk sebuah tabel?

  4. Klon catatan, lalu gunakan id kenaikan otomatisnya untuk operasi lebih lanjut

  5. Bagaimana cara menulis DELETE CASCADE untuk postgres?