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

Postgres Query JSON Array chứa một cái gì đó

Bạn có thể sử dụng json_array_elements hàm tạo SETOF json từ một mảng:

SELECT name, json_array_elements(data) AS author
FROM publisher

Có điều đó, bạn có thể sử dụng nó như một truy vấn con, vì vậy bạn có thể lọc những gì bạn muốn, ví dụ:

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

Chỉ cần lưu ý rằng nếu bạn có nhiều hàng trong bảng này, hiệu suất của các truy vấn như vậy (ít nhất là đối với phiên bản hiện tại, 9.3) sẽ thực sự tồi tệ. Tôi khuyên bạn nên chuẩn hóa dữ liệu thành các bảng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Psycopg2 sử dụng hết bộ nhớ trên truy vấn chọn lọc lớn

  2. làm thế nào để có được lựa chọn được phân trang trên slick + postgresql

  3. Nơi các tệp cơ sở dữ liệu Postgres được lưu trong ubuntu?

  4. Truy vấn PostgreSQL để đếm / nhóm theo ngày và hiển thị các ngày không có dữ liệu

  5. Google Cloud SQL - Bộ nhớ Postgresql tiếp tục tăng