我正在尝试对可以位于任何类型数据库的表进行简单搜索。以下查询适用于大多数数据库,但我找不到适用于 mysql 的解决方案。 我的数据库中的表是由事件对象框架生成的,因此我无法更改这些实例的名称或配置。
以下查询适用于除 MySQL 之外的所有数据库:
从“AO_69D057_FILTER”中选择*,其中“SHARED”= true AND“CONTAINS_PROJECT”= true AND UPPER(“FILTER_NAME”),如UPPER('%pr%')。
出于某种原因,MySql 无法使用双引号中的表名。如果我使用不带引号的表名,它可以在 MySQL 上运行,但不能在 Postgres 上运行。 Postgres 正在将表名转换为小写,因为它没有被引用。 AO 正在生成大写的表名称。
我还尝试使用别名,但由于语句的评估层次结构而无法工作。
有什么建议可以解决表名问题吗?
最佳答案
默认情况下,双引号用于列。 您可以更改它:
SET SQL_MODE=ANSI_QUOTES;
这是有关它的文档: http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
关于mysql - postgres 和 mysql 上的通用大写搜索不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485166/