【问题标题】:simplifying postgres queries简化 postgres 查询
【发布时间】:2022-01-08 01:25:18
【问题描述】:

注意:要求改进工作代码。

我的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';

我的问题是可以在单个查询中更新两个值吗?

谢谢。

【问题讨论】:

    标签: sql postgresql sql-update jsonb


    【解决方案1】:

    当然:

    UPDATE toys
    SET data = jsonb_set(
                  jsonb_set(data, '{toy,available}', 'false'),
                  '{toy,price}',
                  '0'
               )
    WHERE data->'toy'->>'id'='27';
    

    【讨论】:

    • 谢谢。你拯救了我的一天.... :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2022-01-24
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    相关资源
    最近更新 更多