2017-07-19 20 views
0

私は列xとyを持つ単純なテーブルを持っています。 これらの列には、一致するSQLのようなパターンが含まれています。列の配列値のLIKE演算子

最初の行: 列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 

私のトラブルは次のとおりです。

なぜ私はVARCHAR[]で一致させることができますどのようにX.

のためにY用LIKEオペレータの作業を行いますがありませんか?

+0

後に 'Xを選択するの正確な出力を;' –

+0

それは上に書きました。 sから「x」を選択します。 "{'asd'、 'sdf%'、 '%er%'} ' –

答えて

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

+0

ありがとうございます。それは私のミスだった –