2012-02-17 57 views
1

在MySQL中,以下查詢正在正確執行。MySQL搜索查詢未在Postgres DB中執行

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直接執行D B。但我需要一些查詢,它隱式地在DB中進行類型轉換,這使我可以在沒有任何異常的情況下執行MySQL查詢。因爲我記得有一個整數布爾隱式類型轉換的方法。

在此先感謝。

+0

歡迎使用StackOverflow:如果您發佈代碼,XML或數據樣本,**請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)格式和語法突出顯示它! – 2012-02-17 09:25:02

+0

據我所知隱式強制轉換在PostgreSQL 8.3中被刪除。你在什麼版本上? – 2012-02-17 09:42:37

+1

這些確實是數字,用'LIKE'搜索沒有任何意義。如果這些不是真實的數字,而是將它們存儲在'varchar'列中。 – 2012-02-17 11:10:08

回答

2

如果您使用[postgresql] explicit type casts搜索此網站,您將獲得足夠的信息來解決您的問題。