sql >> Databáze >  >> RDS >> PostgreSQL

Jak filtrovat řádky podle vnořených hodnot ve sloupci json?

Váš dotaz je blízko. json_each() je klíčová funkce. Nebo jsonb_each() pro jsonb . Pár vylepšení:

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

Starý sqlfiddle
db<>fiddle zde

Alternativa s polem JSON

Už jste viděli moji související odpověď pro pole JSON:

I když se dotaz na vnořené objekty JSON zdá stejně jednoduchý, existuje vynikající podpora indexů pro pole:

Může být jednodušší / efektivnější s SQL/JSON v Postgres 12 ...



  1. php pro přidávání dat do mySQL z formuláře POST

  2. Jak DATEDIFF() funguje v MariaDB

  3. Jak Oracle zpracovává volání uložených funkcí v SQL?

  4. Jak odstranit tabulku *nebo* pohled z databáze PostgreSQL?