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