Bonjour,
je souhaite via une requête PostgreSQL, réccupérer le contenu d'un json.
On suppose que j'ai deux tables client et article.
Je vous met que la table article pour le test.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create table article ( id_article serial primary key, designation varchar not null, prix int not null, detail json not null, id_client int not null, foreign key (id_client) references client (id_client) );
J'ai ajouté un élément dans la table article et ce qui nous intéresse est le champs detail
Detail:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 insert into article ( designation, prix, detail, id_client) values ( 'Table à manger', 450, '{"adresseArtisan":"25 rue Noblet, 95100 Argenteuil","reference":562485662, "precisions":{"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]}}', 1);
La requête suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part '{"adresseArtisan":"25 rue Noblet, 95100 Argenteuil","reference":562485662, "precisions":{"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]}}'
me renvoie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part select detail->>'precisions' from article where id_article=1;
Ce qui m'intéresse, c'est de réccupérer les valeurs BOIS et 12kg via un select.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 precisions ------------------------------------------------------------------------------- {"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]}
J'aimerais faire quelque chose dans ce genre:
select detail->>'precisions'->>'element'->>BOIS mais je ne sais pas comment m'y prendre.
Après je me doute que pour réccupérer le contenu de element, il faut utiliser un array_to_string. Mais, déjà il faut que j'accède à element.
Auriez vous une piste s'il vous plaît?
Je vous remercie par avance,
Partager