我尝试比较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帮助程序不将其计为列名?