ich Problem mit dem Update haben jsonb Typ in Postgree,PostgreeSQL Abfrage n JSON-Daten Manipulieren
dies ist mein Beispiel json
{
"total": 2,
"products":[
{"name": "guitar", "price": 100000, "brand": "yamaha"},
{"name": "guitar", "price": 100000, "brand": "kramer"}
]
}
und das ist mein Skript, folgende Antwort von here
update product_map t1
set data = (
select jsonb_agg(val)
from (
select case
when value->>'brand' = 'yamaha' then jsonb_set(value, '{price}', '3200')
else value end val
from product_map t2, jsonb_array_elements(data->'products')
where t1.merchant = t2.merchant
and t2.merchant like '0002%'
) s
)
where t1.merchant like '0002%';
Es gibt keinen Fehler, aber mein JSON wurde in
[
{"name": "guitar", "price": 3200, "brand": "yamaha"},
{"name": "guitar", "price": 100000, "brand": "kramer"}
]
geändert
Ich möchte die Daten in diesem Fall aktualisieren ist "Preis", , aber ich möchte nicht das JSON-Format ändern. Jede Hilfe wäre sehr willkommen.
Danke
[Betrachten Sie die Daten zu normalisieren] (https://www.google.com.br/search?q=database+normalization&ie=utf-8&oe=utf-8&gws_rd=cr&ei= xduhV_r9H8SFwgT65KyIDA) –