如何检查一个数组是不是包含另一个数组的任何元素

Posted

技术标签:

【中文标题】如何检查一个数组是不是包含另一个数组的任何元素【英文标题】:How to check if an array contains any elements of another array如何检查一个数组是否包含另一个数组的任何元素 【发布时间】:2022-01-09 20:42:29 【问题描述】:

这里有一个数组 ["chair","desk","charger"],我想检查一个不同的数组是否包含第一个数组中的任何元素。

例子:

["chair","desk"] //returns true;

["screen","charger","computer"] //returns true;

["calendar", "screen"] //returns false;

如何在 Presto SQL 中做到这一点?

【问题讨论】:

【参考方案1】:

检查 array_intersect(x, y) 函数返回的数组的基数。

演示:

with mydata as (
select 1 id, array['chair','desk'] as myarray union all
select 2 id, array['screen','charger','computer']  union all
select 3 id, array['calendar', 'screen']
)

select id, 
       cardinality(array_intersect(myarray, array['chair','desk','charger']))>0 as contains_flag
  from mydata
 order by id

结果:

id  contains_flag
1   TRUE
2   TRUE
3   FALSE

【讨论】:

太好了。谢谢你!

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

检查一个数组是不是包含 JavaScript 中另一个数组的任何元素

检查数组是不是包含另一个数组的所有元素

如何检查字符串是不是包含数组中的任何元素[关闭]

检查一个数组是不是包含另一个数组的所有元素

核心数据谓词 - 检查数组中的任何元素是不是与另一个数组中的任何元素匹配

要检查数组是不是仅包含另一个数组中的元素,VB.NET