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