Sql 列的数组值的LIKE运算符

Sql 列的数组值的LIKE运算符,sql,postgresql,Sql,Postgresql,我有一个包含x和y列的简单表格。 这些列包含用于匹配的类似SQL的模式。 列x是varchar varchar[]的数组 列y是简单字符串VARCHAR 例如: 第一行: x y {'asd','sdf%','%er%'} %er% 我有一个疑问: SELECT x, 'ters' LIKE ANY("x"), y, 'ters' LIKE "y" FROM s 所以这个查询的结果是: "{'asd','sdf%','%er%'}";

我有一个包含x和y列的简单表格。 这些列包含用于匹配的类似SQL的模式。 列x是varchar varchar[]的数组 列y是简单字符串VARCHAR

例如:

第一行:

x                         y
{'asd','sdf%','%er%'}     %er%
我有一个疑问:

SELECT x, 'ters' LIKE ANY("x"), y, 'ters' LIKE "y" FROM s 
所以这个查询的结果是:

"{'asd','sdf%','%er%'}";f;"%er%";t
我的问题是:

为什么LIKE操作符为Y工作而不为X工作


如何通过VARCHAR[]进行匹配?

数组的输入格式错误:

select x, 'ters' like any (x), x[3]
from (values
    ('{asd,sdf%,%er%}'::varchar[]),
    ($${'asd','sdf%','%er%'}$$)
) s(x);
           x           | ?column? |   x    
-----------------------+----------+--------
 {asd,sdf%,%er%}       | t        | %er%
 {'asd','sdf%','%er%'} | f        | '%er%'

发布select x的精确输出;上面写着。从s中选择x;{'asd','sdf%,'%er%}