例如,我的表中的一列是一个数组,我想检查该列是否包含一个包含子字符串的元素"被拒绝" (因此"在中午12点被拒绝的元素","被管理员否定#34;将全部计算,我相信我将不得不使用"喜欢"来识别图案)。如何为此编写sql?
答案 0 :(得分:6)
使用presto' array functions:
filter()
,返回满足给定条件的元素cardinality()
,返回数组的大小:像这样:
where cardinality(filter(myArray, x -> x like '%denied%')) > 0
答案 1 :(得分:2)
在较新版本的 PrestoSQL (now known as Trino) 中,您可以使用 any_match
函数:
WHERE any_match(column, e -> e like '%denied%'))
答案 2 :(得分:-1)
请参见数组运算符docs here
contains(array_column,'denied')