检查数组是不是包含在 PostgreSQL 中的另一个数组中

Posted

技术标签:

【中文标题】检查数组是不是包含在 PostgreSQL 中的另一个数组中【英文标题】:Checking if array is contained in another array in PostgreSQL检查数组是否包含在 PostgreSQL 中的另一个数组中 【发布时间】:2014-01-22 07:10:51 【问题描述】:

有一个数组[10,20],我想知道它是否是数组[20,30,10] 的子集。是否有一个 postgresql 函数或操作来确定一个数组是否包含另一个?

期望的结果:

[10,20] and [30,20,10] - true
[10,20] and [10,30]    - false
[10,20] and [20,10]    - true
[10,20] and [10,20]    - true

【问题讨论】:

'PostgreSQL 中的一个数组'??这是某个代码块的一部分吗?如果不是,我们在谈论什么数据结构? @JanDoggen 数组至少从 version 7 于 2001 年首次发布以来就存在于 PostgreSQL 中。所以我没有得到你的问题,或者这个问题被关闭的原因。 @Rodrigo 这个问题被关闭的原因在顶部的蓝框中写得很清楚 @JanDoggen 是的,我看到了但不同意。许多问题没有显示一半,它们仍然是开放的,有时甚至有数百甚至数千个赞成票。如果有人了解数组是什么,那么问题就很清楚了。我也不明白你的问题。 “什么数据结构?”当然是数组! @JanDoggen 我也不明白为什么要关闭它。你能进一步解释一下吗?您的回答“这个问题被关闭的原因清楚地写在顶部的蓝色框中”是非常无用的,并且对网站上经验不足的人没有描述性。这个问题和下面接受的答案对我非常有帮助,我假设这个问题自 2014 年以来已经有 7k 其他观众。请重新考虑重新打开这个问题以获取新的更新答案。请解释为什么你认为它跑题了,如果你不同意,应该保持关闭。 【参考方案1】:

可能是这样的:

SELECT ARRAY[10,20]  <@ ARRAY[30,20,10];

http://www.postgresql.org/docs/current/static/functions-array.html

【讨论】:

像魅力一样工作。

以上是关于检查数组是不是包含在 PostgreSQL 中的另一个数组中的主要内容,如果未能解决你的问题,请参考以下文章

如何检查数组字段是不是包含唯一值或 MongoDB 中的另一个数组?

一个数组是不是包含使用 c# 的另一个数组 Mongodb 中的任何值

如何检查向量的所有元素是不是在 Eigen c++ 中的另一个向量中?

检查两个 3D numpy 数组是不是包含重叠的 2D 数组

EF CORE PostgreSQL - 检查列表的所有元素是不是包含在另一个列表中

如何检查时间是不是大于或小于PLSQL中的另一个时间