【发布时间】:2015-02-23 00:55:44
【问题描述】:
我需要join 列上的两个表,在一个表中定义为 string,在另一个表中定义为 integer。在这两列中存储的实际数据都是整数。这是设计给我的 - 我无法更改。
所以当我加入MySQL 时,它会默默地进行转换。 PostgreSQL 抱怨。有CAST 运算符,我可以将它们添加到查询中以将字符串 转换为整数,但CAST 函数在不同的RDBMS 中定义不同。
我可以按照在所有(或许多)RDBMS 中工作的方式编写此查询吗?或者,是否有数据库抽象层可以为我做到这一点? ADODB 已经在项目中使用,但我看不出它是否以及如何有助于解决这个问题。
谢谢。
【问题讨论】:
-
CAST(expr AS type)是 ANSI SQL,应该适用于所有 RDBMS -
这是它在 MySQL 中的定义:CAST(VAR AS UNSIGNED),这里是 PostgreSQL:CAST(VAR AS INTEGER)
-
为什么不使用
INTEGER输入mysql呢? -
好吧,我刚刚在 MySQL 5.5.x 中运行它以确保“整数”出现错误。 'unsigned' 有效,但它并不好......
-
看来你是对的。哦,天哪,似乎 mysql 的开发有尽可能多的不兼容性:-S
标签: mysql sql postgresql join adodb