更新 PostgreSQL 数组中的值
我在 PostgreSQL 数据库中有一些列是数组。如果该值不存在,我想在其中添加一个新值(在 UPDATE
中),否则,不要添加任何内容。我不想覆盖数组的当前值,只想向其中添加元素。
是否可以用普通 SQL 执行此操作,或者我需要一个函数吗?我正在使用 PostgreSQL。
I have some columns in PostgreSQL database that are array. I want to add a new value (in UPDATE
) in it if the value don't exists, otherwise, don't add anything. I don't want to overwrite the current value of the array, only add the element to it.
Is it possible do this in plain SQL or do I need a function? I'm using PostgreSQL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这应该像整数数组 (
integer[]
) 的示例一样简单:WHERE
子句如下:也会捕获空数组
' 的情况{}'::int[]
,但如果NULL
值作为数组元素出现,则会失败。如果您的数组从不包含 NULL 作为元素,请考虑实际的数组运算符 ,可能由 GIN 索引支持。
请参阅:
This should be as simple as this example for an integer array (
integer[]
):A
WHERE
clause like:would also catch the case of an empty array
'{}'::int[]
, but fail if aNULL
value appears as element of the array.If your arrays never contain NULL as element, consider actual array operators, possibly supported by a GIN index.
See: