postgresql搜索字符串数组



我们有一个表,其中一列(varchar)包含由空格分隔的字符串,如下所示

A.Y A.P F.K
AC.YZ AB.YY
Ap.YZ BC.YZ

我想用A.P A.Y F.K搜索,结果应该返回第一行。

我正试图找到一种方法来分割空间和排序,并将结果数组与输入进行比较,输入也以相同的方式分割后排序。

有一个函数string_to_array(<input/column>, ' ')可用于分割,但无法找到任何方法来排序结果字符串数组。任何想法?

您不需要对数组进行排序,您可以使用包含操作符@>

where string_to_array(the_column, ' ') @> array['A.P', 'F.K', 'A.Y']

返回包含右侧数组的行,即该列可能包含其他元素。例如,A.P A.Z A.Y F.K也会匹配。

如果你想找到恰好包含这三个元素的行,你可以在两个方向上使用contains运算符:

where string_to_array(the_column, ' ') @> array['A.P', 'F.K', 'A.Y']
and string_to_array(the_column, ' ') <@ array['A.P', 'F.K', 'A.Y']

相关内容

  • 没有找到相关文章

最新更新