Interrogation des champs de type de données JSON dans PostgreSQL
PostgreSQL 9.2 a introduit le type de données JSON, mais l'interrogation avancée des champs dans les enregistrements JSON nécessitait des fonctions personnalisées. PostgreSQL 9.3 a étendu ces capacités avec des opérateurs et des fonctions.
Plus précisément, pour une table avec une colonne JSON nommée « data » :
Postgres 9.3 :
SELECT object FROM json_tbl , json_array_elements(data) AS object WHERE object->>'name' = 'Toby';
Postgres 9.4 :
Postgres 9.5 :
Postgres 12 :
SELECT jsonb_path_query_first(data, '$[*] ? (@.name == "Toby")') AS object FROM jsonb_tbl WHERE data @> '[{ "name": "Toby"}]'; -- optional for indexing
Ou équivalent :
... WHERE data @@ '$[*].name == "Toby"';
Supplémentaire ressources :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!