PostgreSQL检查数组中是否至少有一项是字符串



如何在PostgreSQL中检查数组中是否至少有一个项目在字符串中。例如:我有一个字符串'123456789'和一个数组array ['a','b','1','c']我需要以某种方式检查在哪里,如果至少有一个项目从数组在字符串

如果

返回true如果非字符串项则返回false。

在上面的例子中,它必须返回true,如果数组是array ['a','b','d','c']那么它必须返回false

您可以使用string_to_array和"NULL"将输入字符串转换为数组。分隔符。

然后使用重叠算子&&

where string_to_array('12345678', null) &&  ARRAY['a','b','1','c']

您可以使用正则表达式:

where string ~ array_to_string(ar, '|')

这是一个db<>小提琴

与将字符串转换为数组相比,这种方法的优点是它适用于更长的字符串——它支持逐字符比较。它还支持更长的比较。

一个缺点是,如果ar中的字符串包含正则表达式特殊字符,它将不起作用。

相关内容

最新更新