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查詢。因爲我記得有一個整數布爾隱式類型轉換的方法。
在此先感謝。
歡迎使用StackOverflow:如果您發佈代碼,XML或數據樣本,**請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)格式和語法突出顯示它! – 2012-02-17 09:25:02
據我所知隱式強制轉換在PostgreSQL 8.3中被刪除。你在什麼版本上? – 2012-02-17 09:42:37
這些確實是數字,用'LIKE'搜索沒有任何意義。如果這些不是真實的數字,而是將它們存儲在'varchar'列中。 – 2012-02-17 11:10:08