我正在尝试在可以在任何类型的数据库上的表上轻松搜索。以下查询正在处理大多数数据库,但我找不到适用于mysql的解决方案。 我的数据库中的表是由活动对象框架生成的,因此我无法更改这些实例的名称或配置。
这是一个适用于所有数据库但MySQL的查询:
从" AO_69D057_FILTER"中选择*在哪里"共享" = true AND" CONTAINS_PROJECT" = true和UPPER(" FILTER_NAME")喜欢UPPER('%pr%')。
由于某种原因,MySql无法在双引号中使用表名。如果我使用不带引号的表名,它适用于MySQL,但不适用于Postgres。 Postgres正在将表名转换为小写,因为它没有引用。 AO以大写形式生成表名。
我也尝试使用别名,但由于语句的评估层次结构而无法使用。
有关如何摆脱表名问题的任何建议吗?
答案 0 :(得分:0)
默认情况下,双引号用于列。 你可以改变它:
SET SQL_MODE=ANSI_QUOTES;
以下是有关它的文档: http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html