我目前正在将一个基于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语法?
答案 0 :(得分:1)