我有一个简单的表格,列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[]
匹配?
答案 0 :(得分:1)
您的数组输入格式错误:
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%'
https://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-INPUT