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

Postgres Query JSON Array yang berisi sesuatu

Anda dapat menggunakan json_array_elements berfungsi untuk menghasilkan SETOF json dari larik:

SELECT name, json_array_elements(data) AS author
FROM publisher

Setelah itu, Anda dapat menggunakannya sebagai subquery, sehingga Anda dapat memfilter apa yang Anda inginkan, mis.:

SELECT DISTINCT author->>'author'
FROM (
    SELECT name, json_array_elements(data) AS author
    FROM publisher
) t
WHERE t.author->>'type' = 'Novel';

Perhatikan bahwa jika Anda memiliki banyak baris dalam tabel ini, kinerja kueri tersebut (setidaknya untuk versi saat ini, 9.3) akan sangat buruk. Saya sarankan Anda untuk menormalkan data ke dalam tabel.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan jsonb_set() untuk memperbarui nilai array jsonb tertentu

  2. Menggunakan python sqlalchemy untuk mengeksekusi kueri mentah dengan pernyataan WITH

  3. Nilai default untuk fungsi kolom postgres dengan argumen

  4. Cegah string kosong di bidang VARIASI KARAKTER

  5. PostgreSQL:meningkatkan pg_dump, kinerja pg_restore