简化 postgres 查询
simplifying postgres queries
注:要求改进工作代码。
我的data
专栏如下
{
"color":"red",
"toy":{
"id":27,
"name":"Truck",
"price":12,
"available":true
},
"quantity":"12"
}
在上面的数据中,我想将available
设置为false,将price
设置为zero。
为此,我使用以下代码。
UPDATE toys
SET data=JSONB_SET(data, '{toy,available}','false')
WHERE data->'toy'->>'id'='27';
UPDATE toys
SET data=JSONB_SET(data, '{toy,price}','0')
WHERE data->'toy'->>'id'='27';
我的问题是可以在单个查询中更新两个值吗?
谢谢。
当然可以:
UPDATE toys
SET data = jsonb_set(
jsonb_set(data, '{toy,available}', 'false'),
'{toy,price}',
'0'
)
WHERE data->'toy'->>'id'='27';
注:要求改进工作代码。
我的data
专栏如下
{
"color":"red",
"toy":{
"id":27,
"name":"Truck",
"price":12,
"available":true
},
"quantity":"12"
}
在上面的数据中,我想将available
设置为false,将price
设置为zero。
为此,我使用以下代码。
UPDATE toys
SET data=JSONB_SET(data, '{toy,available}','false')
WHERE data->'toy'->>'id'='27';
UPDATE toys
SET data=JSONB_SET(data, '{toy,price}','0')
WHERE data->'toy'->>'id'='27';
我的问题是可以在单个查询中更新两个值吗?
谢谢。
当然可以:
UPDATE toys
SET data = jsonb_set(
jsonb_set(data, '{toy,available}', 'false'),
'{toy,price}',
'0'
)
WHERE data->'toy'->>'id'='27';