通过一个查询将数组的项从x更新到y

问题描述

列数据类型= jsonb

我的json具有20个项目的数组可用性

示例:

 "availability": [
    {
      "qty": 2,"price": 875,"is_available": false
 },{
      "qty": 21,"price": 1875,"is_available": false
 } 
...

我想将数组的项从index = 2更新到4。

我用这个

UPDATE my_table
  SET data = jsonb_set(data,'{availability,2,is_available}','true',true)
where (my_table.data #>> '{availability,qty}')::numeric > 0;


UPDATE my_table
  SET data = jsonb_set(data,3,qty}')::numeric > 0;

UPDATE my_table
  SET data = jsonb_set(data,4,qty}')::numeric > 0;

我执行3个查询。而且有效。

但是...是否可以通过一个查询更新数组中的3个项目(从2到4的索引)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)