PostgreSQL のプライマリ ID 列に対して LIKE クエリを実行するにはどうすればよいですか?

概要

数値 (88 など) があり、Rails でプライマリ ID 列に対して LIKE クエリを実行して、ID の末尾にその数値 (IE: 88、288 など) を含むすべてのレコードを返したい場合は、どうすればいいでしょうか?結果を生成するコードは次のとおりです。SQLLite では正常に動作します。

@item = Item.where("id like ?", "88").all

PostgreSQL で、次のエラーが発生します。

PG::Error: ERROR:  operator does not exist: integer ~~ unknown

どうすればいいでしょうか?数値を文字列に変換しようとしましたが、それも機能しないようです。

解決策

アーウィンの答えに基づいて: これは非常に古い質問ですが、誰かがそれを必要とする場合に備えて、::text キャストを使用する非常に簡単な答えが 1 つあります。

Item.where("(id::text LIKE ?)", "%#{numeric_variable}%").all

こうすることで、文字列内の任意の場所で数値を見つけることができます。 数値を文字列の末尾にしたい場合にのみ、左側に % ワイルドカードを使用します。 文字列内の任意の場所に数値を入れたい場合は、右側にも % ワイルドカードを使用します。