更新 db2 中 json 文档中的字段值
Posted
技术标签:
【中文标题】更新 db2 中 json 文档中的字段值【英文标题】:Update field values that is inside a json document IN db2 【发布时间】:2020-10-22 08:08:27 【问题描述】:“标识符”:“108”, “名称”:“健康诊所”, “语言支持”:[ “英语语言”, “选择”:假 , “语言”:“西班牙语”, “选择”:真 ], "defaultLanguage": "西班牙语"
我可以使用以下查询更新 json 对象。
UPDATE JSONTABLE SET
JSONCOL=SYSTOOLS.JSON_UPDATE(JSONCOL,
' $set: "name":"AMC HEALTH CLINIC"') WHERE DELETE_FLAG='N';
现在我想更改以下节点“支持的语言”中的数据。 代替“法语”,我想更新“西班牙语”。下面的查询我用来更新。但我没能 获取更新的数据。
UPDATE JSONTABLE SET
JSONCOL=SYSTOOLS.JSON_UPDATE(JSONCOL,
' $set: "Language.1":"French"') WHERE DELETE_FLAG='N';
我也尝试了以下查询。
UPDATE JSONTABLE SET
JSONCOL=SYSTOOLS.JSON_UPDATE(JSONCOL,
' $set: "languageSupported.Language.1":"French"') WHERE DELETE_FLAG='N';
输出应该是这样的: 语言支持”:[ “英语语言”, “选择”:假 , “语言”:“西班牙语”, “选择”:真
谁能帮助我了解如何在 db2 luw 中更新节点内的数据。我们是否有可能更新 json 中任何类型的字段值。
【问题讨论】:
您的 UPDATE 语句之后的 JSON 文档是什么?该字段是否已更新或在文档中添加了新字段? ibm.com/support/knowledgecenter/SSEPGG_11.5.0/… 【参考方案1】:我没有测试过,但我猜是这样的查询:
UPDATE JSONTABLE SET
JSONCOL=SYSTOOLS.JSON_UPDATE(JSONCOL,
' $set: "languageSupported.1.Language":"French"') WHERE DELETE_FLAG='N';
languageSupported 位于路径的顶部,然后您需要选择数组中的第二个元素(“1”),然后是 Language 键。 p>
【讨论】:
您好 Henrik,感谢您的回答。尝试使用您的解决方案。但它不起作用。字段未更新。以上是关于更新 db2 中 json 文档中的字段值的主要内容,如果未能解决你的问题,请参考以下文章
MongoDb:如何根据每个字段的值更新多个文档中的字段值?