PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgres Query JSON масив, който съдържа нещо

Можете да използвате json_array_elements функция за генериране на SETOF json от масив:

SELECT name, json_array_elements(data) AS author
FROM publisher

Имайки това, можете да го използвате като подзаявка, така че да можете да филтрирате каквото искате, напр.:

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

Само имайте предвид, че ако имате много редове в тази таблица, производителността на такива заявки (поне за текущата версия, 9.3) ще бъде наистина лоша. Бих ви препоръчал да нормализирате данните в таблици.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails не връща транзакция след неуспешно запазване ()

  2. как да настроя командата psql в cygwin?

  3. Най-добрите ETL инструменти за мигриране към PostgreSQL

  4. Как да възстановя конкретни данни от предишно архивиране на Postgres Heroku? (Напр. Случайно изтрити редове)

  5. Добавете дни към дата в PostgreSQL