小编sta*_*ode的帖子

postgres jsonb_set多个密钥更新

我有一个带有jsonb列的DB表.

number  | data
    1   | {"name": "firstName", "city": "toronto", "province": "ON"}
Run Code Online (Sandbox Code Playgroud)

我需要一种更新数据列的方法.所以我的输出应该是这样的:

{"name": "firstName", "city": "ottawa", "province": "ON", "phone": "phonenum", "prefix": "prefixedName"}
Run Code Online (Sandbox Code Playgroud)

用json_set可以吗?我添加了如下查询:

update table_name set data = jsonb_set(data, '{city}', '"ottawa"') where number = 1;
Run Code Online (Sandbox Code Playgroud)

但是,我需要一种方法来添加新的键值(如果它不存在)并更新键值(如果它存在).是否可以在单个查询中实现此目的?

postgresql

34
推荐指数
1
解决办法
3万
查看次数

Mysql + where子句匹配多行

我有这样一张桌子:

id  image_id  style_id
------------------------
1   45        24        
1   45        25        
1   47        25        
1   45        27        
1   45        28 
Run Code Online (Sandbox Code Playgroud)

我想拉下image_id列,其中以下三个条件匹配:

style_id = 24
style_id = 25
style_id = 27
Run Code Online (Sandbox Code Playgroud)

我有这样的查询:

SELECT image_id FROM list WHERE (style_id = 24 AND style_id = 25 AND style_id = 27)
Run Code Online (Sandbox Code Playgroud)

这不会让我回头image_id 45.

mysql

2
推荐指数
1
解决办法
99
查看次数

Postgres JSON数组包含给定的数组元素

我一直在stackoverflow上搜索这个答案,但没有找到任何有用的东西.我在my_tbl中有数据:

folder_id |  links                                                                                                     
--------------+----------------------------------------------------------------
   761 | [{"ids": "[82293,82292]", "index": "index_1"}, {"ids": "[82293,82292]", "index": "index_2"}]
   769 | [{"ids": "[82323,82324]", "index": "index_3"}]
   572 | [{"ids": "[80031,79674,78971]", "index": "index_4"}]
   785 | [{"ids": "[82367,82369]", "index": "index_5"}, {"ids": "[82368,82371]", "index": "index_6"}]
   768 | [{"ids": "[82292,82306]", "index": "index_7"}]
Run Code Online (Sandbox Code Playgroud)

我想得到链接所有的行 - >>'ids'包含82292.所以在这种情况下,它应该返回我folder_id 761和768.

到目前为止,我实现了通过-jsonb_array_elements(链接) - >>'ids'将链接数组与链接分开

不知道如何进一步.

postgresql jsonb

2
推荐指数
1
解决办法
5402
查看次数

标签 统计

postgresql ×2

jsonb ×1

mysql ×1