Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menanyakan Data JSON dan JSONB dalam PostgreSQL?

Bagaimana untuk Menanyakan Data JSON dan JSONB dalam PostgreSQL?

Mary-Kate Olsen
Lepaskan: 2025-01-18 19:32:02
asal
258 orang telah melayarinya

How to Query JSON and JSONB Data in PostgreSQL?

Mentanya Medan Jenis Data JSON dalam PostgreSQL

PostgreSQL 9.2 memperkenalkan jenis data JSON, tetapi pertanyaan lanjutan medan dalam rekod JSON memerlukan fungsi tersuai. PostgreSQL 9.3 mengembangkan keupayaan ini dengan pengendali dan fungsi.

Khususnya, untuk jadual dengan lajur JSON bernama "data":

Postgres 9.3:

  • Untuk mencari rekod oleh nama:
SELECT object
FROM   json_tbl
     , json_array_elements(data) AS object
WHERE  object->>'name' = 'Toby';
Salin selepas log masuk

Postgres 9.4:

  • Memperkenalkan jenis data jsonb, yang menyimpan data JSON dalam jenis Postgres asli.
  • Indeks yang menggunakan GIN atau jenis lain boleh bertambah baik prestasi.

Postgres 9.5:

  • Lengkapkan fungsi dan operator jsonb.
  • Lebih banyak fungsi untuk memanipulasi dan memaparkan data jsonb.

Posgres 12:

  • Sokongan bahasa laluan SQL/JSON
  • Untuk mencari rekod mengikut nama menggunakan laluan JSON:
SELECT jsonb_path_query_first(data, '$[*] ? (@.name == "Toby")') AS object
FROM   jsonb_tbl
WHERE  data @> '[{ "name": "Toby"}]';  -- optional for indexing
Salin selepas log masuk
  • Atau bersamaan:

    ...
    WHERE  data @@ '$[*].name == "Toby"';
    Salin selepas log masuk

Sumber tambahan:

  • [Postgres 9.3 JSON Functionality](https://www.postgresql.org/docs/9.3/ statik/)
  • [Postgres JSONB Jenis Data](https://www.postgresql.org/docs/current/static/datatype-json.html)
  • [Sokongan Laluan JSON Postgres 12](https://www.postgresql.org/docs /12/static/functions-json.html)
  • [Github PostSQL Fungsi](https://github.com/daviddias/postsด้วย)

Atas ialah kandungan terperinci Bagaimana untuk Menanyakan Data JSON dan JSONB dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan