无法在Codeigniter中使用自定义属性作为列名

时间:2019-02-08 10:34:20

标签: sql postgresql codeigniter

我尝试比较Codeigniter框架中具有相同类型数据的两列,第一列为char,第二列为integer。我在这种情况下使用PostgreSQL。如果我使用MySQL,则可以毫无疑问地执行此查询。

...
->join(
       "m_region_new c", 
       "a.column1= c.column2", "LEFT")
...

但是由于PostgreSQL非常敏感,所以我无法比较这两列,因为它们具有不同的类型数据。因此,我必须在::integer中添加column2,以便变成这样。

 ...
->join(
       "m_region_new c", 
       "a.column1= c.column2::integer", "LEFT")
...

但是Codeigniter查询助手将::integer属性设为列名。查询语法结果如下所示。

... LEFT JOIN "m_region_new" "c"."column2::integer" ...

PostgreSQL的正确语法是这样的。

... LEFT JOIN "m_region_new" "c"."column2"::integer ...

错误看起来像这样。

ERROR: column c.column2"::integer does not exist LINE 7: ...

我如何转义属性::integer,以使codeigniter帮助程序不将其计为列名?

0 个答案:

没有答案