【PostgreSQL】operator does not exist: integer[] && text[]の対処法

PostgreSQL

PostgreSQLでperator does not exist: integer[] && text[]と怒られた

WHERE array_1 && ARRAY[100]

上記二つの配列を比較したときに、以下のエラーが発生。

operator does not exist: integer[] && text[]

ヒントでは次のメッセージが。

No operator matches the given name and argument types. You might need to add explicit type casts.

どうやら、integerの配列とtextの配列を比較しちゃっているみたいなので、textの配列をintegerの配列にキャストする必要があるっぽい。

エラーを解消した方法

WHERE array_1 && ARRAY[100]::integer[]

2つ目の配列に ::integer[] と加えることで、キャストしたところ、エラーは発生せずSQLが実行できました!

タイトルとURLをコピーしました