【发布时间】:2015-09-16 14:13:56
【问题描述】:
我正在使用 PostgreSQL 9.4.1 并且遇到了我需要更新的列的问题。该列是 JSON 类型,元素格式如下:
["a","b","c",...]
["a","c","d",...]
["c","d","e",...]
等等
这样每个元素都是一个字符串。据我了解,这些元素中的每一个都被认为是 JSON 数组的键(如果我在这里有点困惑,请纠正我,我以前从未使用过 JSON 数据类型列,所以我仍在努力掌握反正在他们身上)。这些数组没有实际的模式,它们的内容取决于其他地方的用户输入。我的目标是更新包含特定元素的任何数组(为了更彻底地解释我的问题,说“b”)并将内容“b”替换为“b1”。意思是:
["a","b","c",...]
将更新为
["a","b1","c",...]
我在这个网站上找到了一些方法(我目前没有链接,但如果有必要我可以再次找到它们)来更新特定 KEY 的值,但我还没有找到提到的方法更改 KEY 本身。我已经找到了一种方法来定位感兴趣的特定行,方法是:
SELECT *
FROM TableA
WHERE column::json ?| ["b", other string elements of interest]
任何建议将不胜感激。谢谢你的帮助!
【问题讨论】:
标签: arrays json postgresql