2012-02-17 19 views
1

MySQLでは、以下のクエリが正しく実行されています。Postgres DBでMySQL検索クエリが実行されていません

SELECT * FROM <Table-name> WHERE (Table.ID LIKE '1%') 

しかし、私はPostgresの中に上記のクエリを実行しようとすると、私は次の例外

"org.postgresql.util.PSQLException: ERROR: operator does not exist: integer ~~ unknown Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts".

を取得し、私は

SELECT * 
FROM <Table-name> 
WHERE CAST(Table.ID as TEXT) LIKE '1%' 

同じクエリを変換する場合これはPostgresの中で直接実行されますDB。しかし、DBに暗黙的に型キャストするクエリが必要です。これにより、MySQLクエリを例外なく実行できます。ブール型暗黙の型キャストのための方法があることを覚えているからです。

ありがとうございます。

+0

ようこそStackOverflow:コード、XML、またはデータサンプルを投稿する場合、**これらの行をテキストエディタで強調表示し、エディタツールバーの[コードサンプル]ボタン( '{}')をクリックしてくださいフォーマットと構文はそれを強調する! –

+0

PostgreSQL 8.3では、暗黙のキャストが削除されたことがわかりました。あなたはどんなバージョンですか? –

+1

これは本当に数字です。「LIKE」で検索するのは意味がありません。それらが 'varchar'カラムに格納するよりも実際の数値でない場合。 –

答えて

2

[postgresql] explicit type castsでこのサイトを検索すると、問題を解決するのに十分な情報が得られます。

関連する問題