В настоящее время я перемещаю большое веб-приложение на основе PHP с одного сервера на другой. Старый сервер работает под управлением 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'
К сожалению, для меня это выглядит совершенно легально. Я предполагаю, что это связано с типом столбца range
, который равен enum('global', 'user')
. Выбор из других столбцов, например столбцы типа int
, отлично работает.
Я знаю, как решить эту проблему локально, то есть добавить имя столбца в предложение where, например:
SELECT * FROM config WHERE config.range='global'
Но я не хочу проходить весь код, добавляя имена столбцов в операторы SQL, где это уместно.
Отсюда мой вопрос:
Как я скажу MySQL 5.5.15 принять несколько небрежный синтаксис 5.0.51a?