PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak filtrować wiersze według wartości zagnieżdżonych w kolumnie json?

Twoje zapytanie jest bliskie. json_each() jest kluczową funkcją. Lub jsonb_each() dla jsonb . Kilka ulepszeń:

SELECT *
FROM   things t
WHERE  EXISTS (
   SELECT FROM json_each(t.blueprint) b
   WHERE  b.value->>'name' ILIKE 'azamund'
   );

Stare sqlfiddle
db<>fiddle tutaj

Alternatywa z tablicą JSON

Widziałeś już moją powiązaną odpowiedź dotyczącą tablic JSON:

Chociaż zapytanie o zagnieżdżone obiekty JSON wydaje się równie proste, istnieje lepsza obsługa indeksowania dla tablicy:

Może stać się prostsze / bardziej wydajne dzięki SQL/JSON w Postgres 12 ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj różne następujące po sobie zakresy dat z nakładających się zakresów dat

  2. Czy w procedurze może istnieć postgres Commit, który ma blok wyjątków?

  3. Jak uzyskać asynchroniczną / sterowaną zdarzeniami obsługę LISTEN/NOTIFY w Javie przy użyciu bazy danych Postgres?

  4. Big Data z PostgreSQL i Apache Spark

  5. Otwarcie połączenia postgres w psycopg2 powoduje awarię pythona