我目前正在将一个基于 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 - 在数据库升级后在 MySQL 中选择一个枚举不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428836/