10

例如,我的表中的一列是一个数组,我想检查该列是否包含包含子字符串“denied”的元素(因此“denied at 12:00 pm”、“denied by admin”等元素都将计算在内,我相信我将不得不使用“喜欢”来识别模式)。如何为此编写sql?

4

3 回答 3

23

使用 presto 的数组函数

  • filter(),它返回满足给定条件的元素
  • cardinality(),它返回数组的大小:

像这样:

where cardinality(filter(myArray, x -> x like '%denied%')) > 0
于 2018-06-08T20:48:37.787 回答
5

在较新版本的 PrestoSQL(现在称为Trino )中,您可以使用以下any_match函数:

WHERE any_match(column, e -> e like '%denied%')
于 2021-04-30T16:47:50.997 回答
0

在此处查看数组运算符文档

contains(array_column,'denied')

于 2020-01-20T20:57:01.547 回答