【发布时间】:2011-09-15 09:40:26
【问题描述】:
我目前正在将一个基于 PHP 的大型 web 应用程序从一台服务器移动到另一台服务器。旧服务器运行 MySQL 5.0.51a(SuSE Linux),新服务器运行 MySQL 5.5.15(ArchLinux)。
现在,新的 MySQL 正在抱怨以下语句(语法错误):
SELECT DISTINCT(field) FROM config WHERE range='global' ORDER BY field
我做了一些测试,发现以下缩短的语句仍然失败(出现语法错误):
SELECT * FROM config WHERE range='global'
不幸的是,这在我看来是完全合法的 SQL。我的猜测是它与range 的列类型有关,即enum('global', 'user')。从其他列中选择,例如int 类型的列,工作得很好。
我知道如何在本地解决此问题,即将列名添加到 where 子句,如下所示:
SELECT * FROM config WHERE config.range='global'
但我不想浏览整个代码,在适当的情况下将列名添加到 SQL 语句中。
因此我的问题是:
我如何告诉 MySQL 5.5.15 接受有些草率的 5.0.51a 语法?
【问题讨论】:
-
只是说“语法错误”,还是有更详细的错误描述?
标签: mysql sql select enums syntax-error