私は、文字列の配列を含むフィールドを持つテーブルを持っています(タイプはcharacter varying(255)[]
です)。PostgreSQL:LIKE、ANY、およびワイルドカードを使用するwhere節
このフィールドの任意の要素に、指定した文字列とワイルドカード(例:'query%'
)を比較したいとします。
この要求作品と予想される結果取り戻す:
SELECT * FROM my_table WHERE 'query' ILIKE ANY(my_field)
しかし、ワイルドカードで、私は何の結果を得なかっ:
SELECT * FROM my_table WHERE 'query%' ILIKE ANY(my_field)
私は理由がワイルドカードのみでサポートされていることだと思うがILIKE
オペレータの右側にありますが、ANY(my_field)
もオペレータの後になければなりません。
私が欲しいものを達成する方法はありますか?
PostgreSQL 9.5の使用。あなたは配列フィールドネスト解除する必要が
[のPostgreSQL可能な複製を使用する - テキスト配列は値が含まれています類似している](http://stackoverflow.com/questions/34657669/postgresql-text-array-contains-value-similar-to) – pozs
あなたはそうだ、これは重複している、私はそれを見ていない。しかし、私は@klinが詳細な答えを書いてくれてうれしく思います。これは他の投稿にはありませんでした。 – scandel